{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a class=\"anchor\" id=\"0\"></a>\n",
    "# **Decision Tree Classifier Tutorial with Python**\n",
    "\n",
    "\n",
    "Hello friends,\n",
    "\n",
    "In this kernel, I build a Decision Tree Classifier to predict the safety of the car. I build two models, one with criterion `gini index` and another one with criterion `entropy`. I implement Decision Tree Classification with Python and Scikit-Learn. "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**As always, I hope you find this kernel useful and your <font color=\"red\"><b>UPVOTES</b></font> would be highly appreciated**."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a class=\"anchor\" id=\"0.1\"></a>\n",
    "# **Table of Contents**\n",
    "\n",
    "\n",
    "1.\t[Introduction to Decision Tree algorithm](#1)\n",
    "2.\t[Classification and Regression Trees](#2)\n",
    "3.\t[Decision Tree algorithm terminology](#3)\n",
    "4.\t[Decision Tree algorithm intuition](#4)\n",
    "5.\t[Attribute selection measures](#5)\n",
    "    - 5.1 [Information gain](#5.1)\n",
    "    - 5.2 [Gini index](#5.2)\n",
    "6.\t[Overfitting in Decision-Tree algorithm](#6)\n",
    "7.\t[Import libraries](#7)\n",
    "8.\t[Import dataset](#8)\n",
    "9.\t[Exploratory data analysis](#9)\n",
    "10.\t[Declare feature vector and target variable](#10)\n",
    "11.\t[Split data into separate training and test set](#11)\n",
    "12.\t[Feature engineering](#12)\n",
    "13.\t[Decision Tree classifier with criterion gini-index](#13)\n",
    "14.\t[Decision Tree classifier with criterion entropy](#14)\n",
    "15.\t[Confusion matrix](#15)\n",
    "16.\t[Classification report](#16)\n",
    "17.\t[Results and conclusion](#17)\n",
    "18. [References](#18)\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **1. Introduction to Decision Tree algorithm** <a class=\"anchor\" id=\"1\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "A Decision Tree algorithm is one of the most popular machine learning algorithms. It uses a tree like structure and their possible combinations to solve a particular problem. It belongs to the class of supervised learning algorithms where it can be used for both classification and regression purposes. \n",
    "\n",
    "\n",
    "A decision tree is a structure that includes a root node, branches, and leaf nodes. Each internal node denotes a test on an attribute, each branch denotes the outcome of a test, and each leaf node holds a class label. The topmost node in the tree is the root node. \n",
    "\n",
    "\n",
    "We make some assumptions while implementing the Decision-Tree algorithm. These are listed below:-\n",
    "\n",
    "1. At the beginning, the whole training set is considered as the root.\n",
    "2. Feature values need to be categorical. If the values are continuous then they are discretized prior to building the model.\n",
    "3. Records are distributed recursively on the basis of attribute values.\n",
    "4. Order to placing attributes as root or internal node of the tree is done by using some statistical approach.\n",
    "\n",
    "\n",
    "I will describe Decision Tree terminology in later section.\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **2. Classification and Regression Trees (CART)** <a class=\"anchor\" id=\"2\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "Nowadays, Decision Tree algorithm is known by its modern name **CART** which stands for **Classification and Regression Trees**. Classification and Regression Trees or **CART** is a term introduced by Leo Breiman to refer to Decision Tree algorithms that can be used for classification and regression modeling problems.\n",
    "\n",
    "\n",
    "The CART algorithm provides a foundation for other important algorithms like bagged decision trees, random forest and boosted decision trees. In this kernel, I will solve a classification problem. So, I will refer the algorithm also as Decision Tree Classification problem. \n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **3. Decision Tree algorithm terminology** <a class=\"anchor\" id=\"3\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "- In a Decision Tree algorithm, there is a tree like structure in which each internal node represents a test on an attribute, each branch represents the outcome of the test, and each leaf node represents a class label. The paths from the root node to leaf node represent classification rules.\n",
    "\n",
    "- We can see that there is some terminology involved in Decision Tree algorithm. The terms involved in Decision Tree algorithm are as follows:-\n",
    "\n",
    "\n",
    "## **Root Node**\n",
    "\n",
    "- It represents the entire population or sample. This further gets divided into two or more homogeneous sets.\n",
    "\n",
    "\n",
    "## **Splitting**\n",
    "\n",
    "- It is a process of dividing a node into two or more sub-nodes.\n",
    "\n",
    "\n",
    "## Decision Node\n",
    "\n",
    "- When a sub-node splits into further sub-nodes, then it is called a decision node.\n",
    "\n",
    "\n",
    "## Leaf/Terminal Node\n",
    "\n",
    "- Nodes that do not split are called Leaf or Terminal nodes.\n",
    "\n",
    "\n",
    "## Pruning\n",
    "\n",
    "- When we remove sub-nodes of a decision node, this process is called pruning. It is the opposite process of splitting.\n",
    "\n",
    "\n",
    "## Branch/Sub-Tree\n",
    "\n",
    "- A sub-section of an entire tree is called a branch or sub-tree.\n",
    "\n",
    "\n",
    "## Parent and Child Node\n",
    "\n",
    "- A node, which is divided into sub-nodes is called the parent node of sub-nodes where sub-nodes are the children of a parent node. \n",
    "\n",
    "\n",
    "The above terminology is represented clearly in the following diagram:-"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Decision-Tree terminology\n",
    "\n",
    "![Decision-Tree terminology](https://gdcoder.com/content/images/2019/05/Screen-Shot-2019-05-18-at-03.40.41.png)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **4. Decision Tree algorithm intuition** <a class=\"anchor\" id=\"4\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "The Decision-Tree algorithm is one of the most frequently and widely used supervised machine learning algorithms that can be used for both classification and regression tasks. The intuition behind the Decision-Tree algorithm is very simple to understand.\n",
    "\n",
    "\n",
    "The Decision Tree algorithm intuition is as follows:-\n",
    "\n",
    "\n",
    "1.\tFor each attribute in the dataset, the Decision-Tree algorithm forms a node. The most important attribute is placed at the root node. \n",
    "\n",
    "2.\tFor evaluating the task in hand, we start at the root node and we work our way down the tree by following the corresponding node that meets our condition or decision.\n",
    "\n",
    "3.\tThis process continues until a leaf node is reached. It contains the prediction or the outcome of the Decision Tree.\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **5. Attribute selection measures** <a class=\"anchor\" id=\"5\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "The primary challenge in the Decision Tree implementation is to identify the attributes which we consider as the root node and each level. This process is known as the **attributes selection**. There are different attributes selection measure to identify the attribute which can be considered as the root node at each level.\n",
    "\n",
    "\n",
    "There are 2 popular attribute selection measures. They are as follows:-\n",
    "\n",
    "\n",
    "- **Information gain**\n",
    "\n",
    "- **Gini index**\n",
    "\n",
    "\n",
    "While using **Information gain** as a criterion, we assume attributes to be categorical and for **Gini index** attributes are assumed to be continuous. These attribute selection measures are described below.\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## **5.1 Information gain** <a class=\"anchor\" id=\"5.1\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "By using information gain as a criterion, we try to estimate the information contained by each attribute. To understand the concept of Information Gain, we need to know another concept called **Entropy**. \n",
    "\n",
    "## **Entropy**\n",
    "\n",
    "Entropy measures the impurity in the given dataset. In Physics and Mathematics, entropy is referred to as the randomness or uncertainty of a random variable X. In information theory, it refers to the impurity in a group of examples. **Information gain** is the decrease in entropy. Information gain computes the difference between entropy before split and average entropy after split of the dataset based on given attribute values. \n",
    "\n",
    "Entropy is represented by the following formula:-\n",
    "\n",
    "\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![Entropy](http://www.learnbymarketing.com/wp-content/uploads/2016/02/entropy-formula.png)\n",
    "\n",
    "\n",
    "\n",
    "Here, **c** is the number of classes and **pi** is the probability associated with the ith class. "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The ID3 (Iterative Dichotomiser) Decision Tree algorithm uses entropy to calculate information gain. So, by calculating decrease in **entropy measure** of each attribute we can calculate their information gain. The attribute with the highest information gain is chosen as the splitting attribute at the node."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## **5.2 Gini index** <a class=\"anchor\" id=\"5.2\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "Another attribute selection measure that **CART (Categorical and Regression Trees)** uses is the **Gini index**. It uses the Gini method to create split points. \n",
    "\n",
    "\n",
    "Gini index can be represented with the following diagram:-"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## **Gini index**\n",
    "\n",
    "![Gini index](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRzYHkcmZKKp2sJN1HpHvw-NgqbD9EnapnbXozXRgajrSGvEnYy&s)\n",
    "\n",
    "\n",
    "Here, again **c** is the number of classes and **pi** is the probability associated with the ith class."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Gini index says, if we randomly select two items from a population, they must be of the same class and probability for this is 1 if the population is pure.\n",
    "\n",
    "It works with the categorical target variable “Success” or “Failure”. It performs only binary splits. The higher the value of Gini, higher the homogeneity. CART (Classification and Regression Tree) uses the Gini method to create binary splits.\n",
    "\n",
    "Steps to Calculate Gini for a split\n",
    "\n",
    "1.\tCalculate Gini for sub-nodes, using formula sum of the square of probability for success and failure (p^2+q^2).\n",
    "\n",
    "2.\tCalculate Gini for split using weighted Gini score of each node of that split.\n",
    "\n",
    "\n",
    "In case of a discrete-valued attribute, the subset that gives the minimum gini index for that chosen is selected as a splitting attribute. In the case of continuous-valued attributes, the strategy is to select each pair of adjacent values as a possible split-point and point with smaller gini index chosen as the splitting point. The attribute with minimum Gini index is chosen as the splitting attribute."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **6. Overfitting in Decision Tree algorithm** <a class=\"anchor\" id=\"6\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "Overfitting is a practical problem while building a Decision-Tree model. The problem of overfitting is considered when the algorithm continues to go deeper and deeper to reduce the training-set error but results with an increased test-set error. So, accuracy of prediction for our model goes down. It generally happens when we build many branches due to outliers and irregularities in data.\n",
    "\n",
    "Two approaches which can be used to avoid overfitting are as follows:-\n",
    "\n",
    "- Pre-Pruning\n",
    "\n",
    "- Post-Pruning\n",
    "\n",
    "\n",
    "## **Pre-Pruning**\n",
    "\n",
    "In pre-pruning, we stop the tree construction a bit early. We prefer not to split a node if its goodness measure is below a threshold value. But it is difficult to choose an appropriate stopping point.\n",
    "\n",
    "\n",
    "## **Post-Pruning**\n",
    "\n",
    "In post-pruning, we go deeper and deeper in the tree to build a complete tree. If the tree shows the overfitting problem then pruning is done as a post-pruning step. We use the cross-validation data to check the effect of our pruning. Using cross-validation data, we test whether expanding a node will result in improve or not. If it shows an improvement, then we can continue by expanding that node. But if it shows a reduction in accuracy then it should not be expanded. So, the node should be converted to a leaf node."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **7. Import libraries** <a class=\"anchor\" id=\"7\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# This Python 3 environment comes with many helpful analytics libraries installed\n",
    "# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n",
    "# For example, here's several helpful packages to load in \n",
    "\n",
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
    "import matplotlib.pyplot as plt # data visualization\n",
    "import seaborn as sns # statistical data visualization\n",
    "%matplotlib inline\n",
    "\n",
    "# Input data files are available in the \"../input/\" directory.\n",
    "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n",
    "\n",
    "# import os\n",
    "# for dirname, _, filenames in os.walk('/kaggle/input'):\n",
    "#     for filename in filenames:\n",
    "#         print(os.path.join(dirname, filename))\n",
    "\n",
    "# Any results you write to the current directory are saved as output."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **8. Import dataset** <a class=\"anchor\" id=\"8\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = './car_evaluation.csv'\n",
    "\n",
    "df = pd.read_csv(data, header=None)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **9. Exploratory data analysis** <a class=\"anchor\" id=\"9\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "Now, I will explore the data to gain insights about the data. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1728, 7)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# view dimensions of dataset\n",
    "\n",
    "df.shape"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that there are 1728 instances and 7 variables in the data set."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View top 5 rows of dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>small</td>\n",
       "      <td>low</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>small</td>\n",
       "      <td>med</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>small</td>\n",
       "      <td>high</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>med</td>\n",
       "      <td>low</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>med</td>\n",
       "      <td>med</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       0      1  2  3      4     5      6\n",
       "0  vhigh  vhigh  2  2  small   low  unacc\n",
       "1  vhigh  vhigh  2  2  small   med  unacc\n",
       "2  vhigh  vhigh  2  2  small  high  unacc\n",
       "3  vhigh  vhigh  2  2    med   low  unacc\n",
       "4  vhigh  vhigh  2  2    med   med  unacc"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# preview the dataset\n",
    "\n",
    "df.head()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Rename column names\n",
    "\n",
    "We can see that the dataset does not have proper column names. The columns are merely labelled as 0,1,2.... and so on. We should give proper names to the columns. I will do it as follows:-"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety', 'class']"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "col_names = ['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety', 'class']\n",
    "\n",
    "\n",
    "df.columns = col_names\n",
    "\n",
    "col_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>buying</th>\n",
       "      <th>maint</th>\n",
       "      <th>doors</th>\n",
       "      <th>persons</th>\n",
       "      <th>lug_boot</th>\n",
       "      <th>safety</th>\n",
       "      <th>class</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>small</td>\n",
       "      <td>low</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>small</td>\n",
       "      <td>med</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>small</td>\n",
       "      <td>high</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>med</td>\n",
       "      <td>low</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>med</td>\n",
       "      <td>med</td>\n",
       "      <td>unacc</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  buying  maint doors persons lug_boot safety  class\n",
       "0  vhigh  vhigh     2       2    small    low  unacc\n",
       "1  vhigh  vhigh     2       2    small    med  unacc\n",
       "2  vhigh  vhigh     2       2    small   high  unacc\n",
       "3  vhigh  vhigh     2       2      med    low  unacc\n",
       "4  vhigh  vhigh     2       2      med    med  unacc"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# let's again preview the dataset\n",
    "\n",
    "df.head()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the column names are renamed. Now, the columns have meaningful names."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### View summary of dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 1728 entries, 0 to 1727\n",
      "Data columns (total 7 columns):\n",
      " #   Column    Non-Null Count  Dtype \n",
      "---  ------    --------------  ----- \n",
      " 0   buying    1728 non-null   object\n",
      " 1   maint     1728 non-null   object\n",
      " 2   doors     1728 non-null   object\n",
      " 3   persons   1728 non-null   object\n",
      " 4   lug_boot  1728 non-null   object\n",
      " 5   safety    1728 non-null   object\n",
      " 6   class     1728 non-null   object\n",
      "dtypes: object(7)\n",
      "memory usage: 94.6+ KB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Frequency distribution of values in variables\n",
    "\n",
    "Now, I will check the frequency counts of categorical variables."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "vhigh    432\n",
      "high     432\n",
      "med      432\n",
      "low      432\n",
      "Name: buying, dtype: int64\n",
      "vhigh    432\n",
      "high     432\n",
      "med      432\n",
      "low      432\n",
      "Name: maint, dtype: int64\n",
      "2        432\n",
      "3        432\n",
      "4        432\n",
      "5more    432\n",
      "Name: doors, dtype: int64\n",
      "2       576\n",
      "4       576\n",
      "more    576\n",
      "Name: persons, dtype: int64\n",
      "small    576\n",
      "med      576\n",
      "big      576\n",
      "Name: lug_boot, dtype: int64\n",
      "low     576\n",
      "med     576\n",
      "high    576\n",
      "Name: safety, dtype: int64\n",
      "unacc    1210\n",
      "acc       384\n",
      "good       69\n",
      "vgood      65\n",
      "Name: class, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "col_names = ['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety', 'class']\n",
    "\n",
    "\n",
    "for col in col_names:\n",
    "    \n",
    "    print(df[col].value_counts())   \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "low     576\n",
      "med     576\n",
      "high    576\n",
      "Name: safety, dtype: int64\n",
      "unacc    1210\n",
      "acc       384\n",
      "good       69\n",
      "vgood      65\n",
      "Name: class, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "col_names = [ 'safety', 'class']\n",
    "\n",
    "\n",
    "for col in col_names:\n",
    "    \n",
    "    print(df[col].value_counts())   "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the `doors` and `persons` are categorical in nature. So, I will treat them as categorical variables."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Summary of variables\n",
    "\n",
    "\n",
    "- There are 7 variables in the dataset. All the variables are of categorical data type.\n",
    "\n",
    "\n",
    "- These are given by `buying`, `maint`, `doors`, `persons`, `lug_boot`, `safety` and `class`.\n",
    "\n",
    "\n",
    "- `class` is the target variable."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Explore `class` variable"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "unacc    1210\n",
       "acc       384\n",
       "good       69\n",
       "vgood      65\n",
       "Name: class, dtype: int64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['class'].value_counts()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `class` target variable is ordinal in nature."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Missing values in variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "buying      0\n",
       "maint       0\n",
       "doors       0\n",
       "persons     0\n",
       "lug_boot    0\n",
       "safety      0\n",
       "class       0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# check missing values in variables\n",
    "\n",
    "df.isnull().sum()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that there are no missing values in the dataset. I have checked the frequency distribution of values previously. It also confirms that there are no missing values in the dataset."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **10. Declare feature vector and target variable** <a class=\"anchor\" id=\"10\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = df.drop(['class'], axis=1)\n",
    "\n",
    "y = df['class']"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **11. Split data into separate training and test set** <a class=\"anchor\" id=\"11\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# split X and y into training and testing sets\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.33, random_state = 42)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((1157, 6), (571, 6))"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# check the shape of X_train and X_test\n",
    "\n",
    "X_train.shape, X_test.shape"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **12. Feature Engineering** <a class=\"anchor\" id=\"12\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "**Feature Engineering** is the process of transforming raw data into useful features that help us to understand our model better and increase its predictive power. I will carry out feature engineering on different types of variables.\n",
    "\n",
    "\n",
    "First, I will check the data types of variables again."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "buying      object\n",
       "maint       object\n",
       "doors       object\n",
       "persons     object\n",
       "lug_boot    object\n",
       "safety      object\n",
       "dtype: object"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# check data types in X_train\n",
    "\n",
    "X_train.dtypes"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Encode categorical variables\n",
    "\n",
    "\n",
    "Now, I will encode the categorical variables."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>buying</th>\n",
       "      <th>maint</th>\n",
       "      <th>doors</th>\n",
       "      <th>persons</th>\n",
       "      <th>lug_boot</th>\n",
       "      <th>safety</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>3</td>\n",
       "      <td>more</td>\n",
       "      <td>med</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>468</th>\n",
       "      <td>high</td>\n",
       "      <td>vhigh</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>small</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>155</th>\n",
       "      <td>vhigh</td>\n",
       "      <td>high</td>\n",
       "      <td>3</td>\n",
       "      <td>more</td>\n",
       "      <td>small</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1721</th>\n",
       "      <td>low</td>\n",
       "      <td>low</td>\n",
       "      <td>5more</td>\n",
       "      <td>more</td>\n",
       "      <td>small</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1208</th>\n",
       "      <td>med</td>\n",
       "      <td>low</td>\n",
       "      <td>2</td>\n",
       "      <td>more</td>\n",
       "      <td>small</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     buying  maint  doors persons lug_boot safety\n",
       "48    vhigh  vhigh      3    more      med    low\n",
       "468    high  vhigh      3       4    small    low\n",
       "155   vhigh   high      3    more    small   high\n",
       "1721    low    low  5more    more    small   high\n",
       "1208    med    low      2    more    small   high"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.head()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that all  the variables are ordinal categorical data type."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import category encoders\n",
    "\n",
    "import category_encoders as ce"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OrdinalEncoder是一种用于将分类特征转换为整数编码的编码器。它为每个不同的类别分配一个唯一的整数值，从0开始递增。这种编码对于不具有内在顺序关系的分类特征非常有用，例如颜色（红、绿、蓝）或国家（美国、中国、英国）。\n",
    "\n",
    "以下是使用OrdinalEncoder进行编码的示例代码：\n",
    "\n",
    "```python\n",
    "from sklearn.preprocessing import OrdinalEncoder\n",
    "\n",
    "# 创建一个示例数据集\n",
    "data = [['红', '小'],\n",
    "        ['绿', '中'],\n",
    "        ['蓝', '大'],\n",
    "        ['红', '大'],\n",
    "        ['绿', '小']]\n",
    "\n",
    "# 创建一个OrdinalEncoder对象\n",
    "encoder = OrdinalEncoder()\n",
    "\n",
    "# 使用fit_transform方法对数据进行编码\n",
    "encoded_data = encoder.fit_transform(data)\n",
    "\n",
    "# 打印编码后的数据\n",
    "print(encoded_data)\n",
    "```\n",
    "\n",
    "输出结果为：\n",
    "\n",
    "```\n",
    "[[2. 1.]\n",
    " [1. 0.]\n",
    " [0. 2.]\n",
    " [2. 2.]\n",
    " [1. 1.]]\n",
    "```\n",
    "\n",
    "你可以在scikit-learn官方文档中找到更多关于OrdinalEncoder的信息和用法示例：https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OrdinalEncoder.html\n",
    "\n",
    "from sklearn.preprocessing import OrdinalEncoder\n",
    "enc = OrdinalEncoder(categories=[['first','second','third','forth']])\n",
    "X = [['third'], ['second'], ['first']]\n",
    "enc.fit(X)\n",
    "print(enc.transform([['second'], ['first'], ['third'],['forth']]))\n",
    "\n",
    "low      432\n",
    "high     432\n",
    "med      432\n",
    "vhigh    432\n",
    "Name: buying, dtype: int64\n",
    "low      432\n",
    "high     432\n",
    "med      432\n",
    "vhigh    432\n",
    "Name: maint, dtype: int64\n",
    "5more    432\n",
    "2        432\n",
    "3        432\n",
    "4        432\n",
    "Name: doors, dtype: int64\n",
    "2       576\n",
    "more    576\n",
    "4       576\n",
    "Name: persons, dtype: int64\n",
    "med      576\n",
    "small    576\n",
    "big      576\n",
    "Name: lug_boot, dtype: int64\n",
    "low     576\n",
    "med     576\n",
    "high    576\n",
    "Name: safety, dtype: int64\n",
    "unacc    1210\n",
    "acc       384\n",
    "good       69\n",
    "vgood      65\n",
    "Name: class, dtype: int64"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# encode variables with ordinal encoding\n",
    "#http://contrib.scikit-learn.org/category_encoders/ordinal.html\n",
    "# encoder = ce.OrdinalEncoder(cols=['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety'],\n",
    "#                             categories=[['low','med','high','vhigh'],\n",
    "#                                         ['low','med','high','vhigh'],\n",
    "#                                         ['2','3','4','5more'],\n",
    "#                                         ['2','4','more'],\n",
    "#                                         ['small','med','big'],\n",
    "#                                         ['low','med','high'],\n",
    "#                                         ])\n",
    "encoder = ce.OrdinalEncoder(cols=['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety'],\n",
    "                            mapping=[{'col':'buying','mapping':{'low':0,'med':1,'high':2,'vhigh':3}},\n",
    "                                      {'col':'maint','mapping':{'low':0,'med':1,'high':2,'vhigh':3}},\n",
    "                                      {'col':'doors','mapping':{'2':0,'3':1,'4':2,'5more':3}},\n",
    "                                      {'col':'doors','mapping':{'2':0,'3':1,'4':2,'5more':3}},\n",
    "                                      {'col':'persons','mapping':{'2':0,'4':1,'more':2}},\n",
    "                                      {'col':'lug_boot','mapping':{'small':0,'med':1,'big':2}},\n",
    "                                      {'col':'safety','mapping':{'low':0,'med':1,'high':2}}])\n",
    "\n",
    "\n",
    "X_train = encoder.fit_transform(X_train)\n",
    "\n",
    "X_test = encoder.transform(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>buying</th>\n",
       "      <th>maint</th>\n",
       "      <th>doors</th>\n",
       "      <th>persons</th>\n",
       "      <th>lug_boot</th>\n",
       "      <th>safety</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>468</th>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>155</th>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1721</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1208</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      buying  maint  doors  persons  lug_boot  safety\n",
       "48         3      3   -1.0        2         1       0\n",
       "468        2      3   -1.0        1         0       0\n",
       "155        3      2   -1.0        2         0       2\n",
       "1721       0      0   -1.0        2         0       2\n",
       "1208       1      0   -1.0        2         0       2"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>buying</th>\n",
       "      <th>maint</th>\n",
       "      <th>doors</th>\n",
       "      <th>persons</th>\n",
       "      <th>lug_boot</th>\n",
       "      <th>safety</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>599</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1201</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>628</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1498</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1263</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      buying  maint  doors  persons  lug_boot  safety\n",
       "599        2      2   -1.0        0         1       2\n",
       "1201       1      0   -1.0        1         1       1\n",
       "628        2      2   -1.0        0         2       1\n",
       "1498       0      2   -1.0        1         1       1\n",
       "1263       1      0   -1.0        2         1       0"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_test.head()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now have training and test set ready for model building. "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **13. Decision Tree Classifier with criterion gini index** <a class=\"anchor\" id=\"13\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# import DecisionTreeClassifier\n",
    "\n",
    "from sklearn.tree import DecisionTreeClassifier\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeClassifier(max_depth=3, random_state=0)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeClassifier</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeClassifier(max_depth=3, random_state=0)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "DecisionTreeClassifier(max_depth=3, random_state=0)"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# instantiate the DecisionTreeClassifier model with criterion gini index\n",
    "\n",
    "clf_gini = DecisionTreeClassifier(criterion='gini', max_depth=3, random_state=0)\n",
    "\n",
    "\n",
    "# fit the model\n",
    "clf_gini.fit(X_train, y_train)\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict the Test set results with criterion gini index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_gini = clf_gini.predict(X_test)\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check accuracy score with criterion gini index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model accuracy score with criterion gini index: 0.8021\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "print('Model accuracy score with criterion gini index: {0:0.4f}'. format(accuracy_score(y_test, y_pred_gini)))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, **y_test** are the true class labels and **y_pred_gini** are the predicted class labels in the test-set."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compare the train-set and test-set accuracy\n",
    "\n",
    "\n",
    "Now, I will compare the train-set and test-set accuracy to check for overfitting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['unacc', 'unacc', 'unacc', ..., 'unacc', 'unacc', 'acc'],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred_train_gini = clf_gini.predict(X_train)\n",
    "\n",
    "y_pred_train_gini"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training-set accuracy score: 0.7865\n"
     ]
    }
   ],
   "source": [
    "print('Training-set accuracy score: {0:0.4f}'. format(accuracy_score(y_train, y_pred_train_gini)))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check for overfitting and underfitting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training set score: 0.7865\n",
      "Test set score: 0.8021\n"
     ]
    }
   ],
   "source": [
    "# print the scores on training and test set\n",
    "\n",
    "print('Training set score: {:.4f}'.format(clf_gini.score(X_train, y_train)))\n",
    "\n",
    "print('Test set score: {:.4f}'.format(clf_gini.score(X_test, y_test)))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, the training-set accuracy score is 0.7865 while the test-set accuracy to be 0.8021. These two values are quite comparable. So, there is no sign of overfitting. \n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize decision-trees"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.3333333333333333, 0.875, 'x[5] <= 0.5\\ngini = 0.455\\nsamples = 1157\\nvalue = [255, 49, 813, 40]'),\n",
       " Text(0.16666666666666666, 0.625, 'gini = 0.0\\nsamples = 386\\nvalue = [0, 0, 386, 0]'),\n",
       " Text(0.5, 0.625, 'x[3] <= 0.5\\ngini = 0.577\\nsamples = 771\\nvalue = [255, 49, 427, 40]'),\n",
       " Text(0.3333333333333333, 0.375, 'gini = 0.0\\nsamples = 246\\nvalue = [0, 0, 246, 0]'),\n",
       " Text(0.6666666666666666, 0.375, 'x[0] <= 1.5\\ngini = 0.631\\nsamples = 525\\nvalue = [255, 49, 181, 40]'),\n",
       " Text(0.5, 0.125, 'gini = 0.654\\nsamples = 254\\nvalue = [131, 49, 34, 40]'),\n",
       " Text(0.8333333333333334, 0.125, 'gini = 0.496\\nsamples = 271\\nvalue = [124, 0, 147, 0]')]"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAAJ8CAYAAADK/j3+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeVyN6f8/8Ndp1yZEoRRZskTKMohKsmc3hShhbPNhfDHWsY1hMIOxZDBUCB/LMBhjmVSWlH3PXrJEylLZUl2/P/qd83GcE6c6dUqv5+NxHjPua7nf931y9D7XdV+XRAghQERERERERFRCaWk6ACIiIiIiIqKCYGJLREREREREJRoTWyIiIiIiIirRmNgSERERERFRicbEloiIiIiIiEo0JrZERERERERUojGxJSIiIiIiohKNiS0RERERERGVaExsiYiIiIiIqERjYktEREREREQlGhNbIiIiIiIiKtGY2BIREREREVGJxsSWiIiIiIiISjQmtkRERERERFSiMbElIiIiIiKiEo2JLREREREREZVoTGyJiIiIiIioRGNiS0RERERERCUaE1siIiIiIiIq0ZjYEhERERERUYnGxJaIiIiIiIhKNCa2REREREREVKIxsSUiIiIiIqISjYktERERERERlWhMbImIiIiIiKhEY2JLREREREREJRoTWyIiIiIiIirRmNgSERERERFRicbEloiIiIiIiEo0JrZERERERERUojGxJSIiIiIiohJNR9MBEH0sISEBycnJmg6DiEhtzM3NUa1aNU2HQURE9MViYkvFSkJCAurWrYvXr19rOhQiIrUxNDREbGwsk1siIqJCwsSWipXk5GS8fv0amzZtQt26dTUdDhFRgcXGxsLX1xfJyclMbImIiAoJE1sqlurWrQsnJydNh0FERERERCUAF48iIiIiIiKiEo2JLREREREREZVoTGyJiIiIiIioRGNiS0RERERERCUaE1siIiIiIiIq0ZjYEhERERERUYnGxJaI8iQ+Ph4SiUTu9csvvyjU+7jOx6+ff/5Zoc2FCxcU6gUHBxfBVWlWTEwMevbsiUqVKsHAwAC1atXC999/j5cvX+a5r+Dg4M/e+8ePHxfCVRARERFpDvexJaJ8MTIyQp8+fQAADRo0yLWen5+f0uMODg4Kx8qXLy+rf/z4cdy5c0cNkRZvW7ZswcCBA5GV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",
      "text/plain": [
       "<Figure size 1200x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12,8))\n",
    "\n",
    "from sklearn import tree\n",
    "\n",
    "tree.plot_tree(clf_gini.fit(X_train, y_train)) "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize decision-trees with graphviz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 8.0.5 (20230430.1635)\n -->\n<!-- Title: Tree Pages: 1 -->\n<svg width=\"520pt\" height=\"462pt\"\n viewBox=\"0.00 0.00 519.50 461.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 457.5)\">\n<title>Tree</title>\n<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-457.5 515.5,-457.5 515.5,4 -4,4\"/>\n<!-- 0 -->\n<g id=\"node1\" class=\"node\">\n<title>0</title>\n<path fill=\"#85c2ef\" stroke=\"black\" d=\"M237.75,-453.5C237.75,-453.5 84.5,-453.5 84.5,-453.5 78.5,-453.5 72.5,-447.5 72.5,-441.5 72.5,-441.5 72.5,-375 72.5,-375 72.5,-369 78.5,-363 84.5,-363 84.5,-363 237.75,-363 237.75,-363 243.75,-363 249.75,-369 249.75,-375 249.75,-375 249.75,-441.5 249.75,-441.5 249.75,-447.5 243.75,-453.5 237.75,-453.5\"/>\n<text text-anchor=\"start\" x=\"124.38\" y=\"-436.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">safety ≤ 0.5</text>\n<text text-anchor=\"start\" x=\"124\" y=\"-419.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.455</text>\n<text text-anchor=\"start\" x=\"109.75\" y=\"-403.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1157</text>\n<text text-anchor=\"start\" x=\"80.5\" y=\"-386.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [255, 49, 813, 40]</text>\n<text text-anchor=\"start\" x=\"120.25\" y=\"-370.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = good</text>\n</g>\n<!-- 1 -->\n<g id=\"node2\" class=\"node\">\n<title>1</title>\n<path fill=\"#399de5\" stroke=\"black\" d=\"M132.25,-318.75C132.25,-318.75 12,-318.75 12,-318.75 6,-318.75 0,-312.75 0,-306.75 0,-306.75 0,-256.75 0,-256.75 0,-250.75 6,-244.75 12,-244.75 12,-244.75 132.25,-244.75 132.25,-244.75 138.25,-244.75 144.25,-250.75 144.25,-256.75 144.25,-256.75 144.25,-306.75 144.25,-306.75 144.25,-312.75 138.25,-318.75 132.25,-318.75\"/>\n<text text-anchor=\"start\" x=\"43.25\" y=\"-301.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\n<text text-anchor=\"start\" x=\"24.88\" y=\"-284.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 386</text>\n<text text-anchor=\"start\" x=\"8\" y=\"-268.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 386, 0]</text>\n<text text-anchor=\"start\" x=\"31.25\" y=\"-251.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = good</text>\n</g>\n<!-- 0&#45;&gt;1 -->\n<g id=\"edge1\" class=\"edge\">\n<title>0&#45;&gt;1</title>\n<path fill=\"none\" stroke=\"black\" d=\"M129.25,-362.65C121.14,-351.31 112.42,-339.12 104.3,-327.76\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"106.6,-325.96 97.94,-319.86 100.9,-330.03 106.6,-325.96\"/>\n<text text-anchor=\"middle\" x=\"93.84\" y=\"-338.47\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\n</g>\n<!-- 2 -->\n<g id=\"node3\" class=\"node\">\n<title>2</title>\n<path fill=\"#bddef6\" stroke=\"black\" d=\"M327.75,-327C327.75,-327 174.5,-327 174.5,-327 168.5,-327 162.5,-321 162.5,-315 162.5,-315 162.5,-248.5 162.5,-248.5 162.5,-242.5 168.5,-236.5 174.5,-236.5 174.5,-236.5 327.75,-236.5 327.75,-236.5 333.75,-236.5 339.75,-242.5 339.75,-248.5 339.75,-248.5 339.75,-315 339.75,-315 339.75,-321 333.75,-327 327.75,-327\"/>\n<text text-anchor=\"start\" x=\"207.62\" y=\"-309.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">persons ≤ 0.5</text>\n<text text-anchor=\"start\" x=\"214\" y=\"-293.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.577</text>\n<text text-anchor=\"start\" x=\"203.88\" y=\"-276.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 771</text>\n<text text-anchor=\"start\" x=\"170.5\" y=\"-260.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [255, 49, 427, 40]</text>\n<text text-anchor=\"start\" x=\"210.25\" y=\"-243.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = good</text>\n</g>\n<!-- 0&#45;&gt;2 -->\n<g id=\"edge2\" class=\"edge\">\n<title>0&#45;&gt;2</title>\n<path fill=\"none\" stroke=\"black\" d=\"M193.36,-362.65C199.57,-354.07 206.12,-345 212.51,-336.17\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"215.79,-338.61 218.81,-328.45 210.11,-334.51 215.79,-338.61\"/>\n<text text-anchor=\"middle\" x=\"222.78\" y=\"-347.09\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\n</g>\n<!-- 3 -->\n<g id=\"node4\" class=\"node\">\n<title>3</title>\n<path fill=\"#399de5\" stroke=\"black\" d=\"M221.25,-192.25C221.25,-192.25 101,-192.25 101,-192.25 95,-192.25 89,-186.25 89,-180.25 89,-180.25 89,-130.25 89,-130.25 89,-124.25 95,-118.25 101,-118.25 101,-118.25 221.25,-118.25 221.25,-118.25 227.25,-118.25 233.25,-124.25 233.25,-130.25 233.25,-130.25 233.25,-180.25 233.25,-180.25 233.25,-186.25 227.25,-192.25 221.25,-192.25\"/>\n<text text-anchor=\"start\" x=\"132.25\" y=\"-174.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.0</text>\n<text text-anchor=\"start\" x=\"113.88\" y=\"-158.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 246</text>\n<text text-anchor=\"start\" x=\"97\" y=\"-141.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 246, 0]</text>\n<text text-anchor=\"start\" x=\"120.25\" y=\"-125.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = good</text>\n</g>\n<!-- 2&#45;&gt;3 -->\n<g id=\"edge3\" class=\"edge\">\n<title>2&#45;&gt;3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M218.89,-236.15C210.69,-224.81 201.87,-212.62 193.66,-201.26\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"195.92,-199.41 187.23,-193.36 190.25,-203.51 195.92,-199.41\"/>\n</g>\n<!-- 4 -->\n<g id=\"node5\" class=\"node\">\n<title>4</title>\n<path fill=\"#f9e4d4\" stroke=\"black\" d=\"M416.75,-200.5C416.75,-200.5 263.5,-200.5 263.5,-200.5 257.5,-200.5 251.5,-194.5 251.5,-188.5 251.5,-188.5 251.5,-122 251.5,-122 251.5,-116 257.5,-110 263.5,-110 263.5,-110 416.75,-110 416.75,-110 422.75,-110 428.75,-116 428.75,-122 428.75,-122 428.75,-188.5 428.75,-188.5 428.75,-194.5 422.75,-200.5 416.75,-200.5\"/>\n<text text-anchor=\"start\" x=\"301.88\" y=\"-183.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">buying ≤ 1.5</text>\n<text text-anchor=\"start\" x=\"303\" y=\"-166.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.631</text>\n<text text-anchor=\"start\" x=\"292.88\" y=\"-150.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 525</text>\n<text text-anchor=\"start\" x=\"259.5\" y=\"-133.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [255, 49, 181, 40]</text>\n<text text-anchor=\"start\" x=\"297\" y=\"-117.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 2&#45;&gt;4 -->\n<g id=\"edge4\" class=\"edge\">\n<title>2&#45;&gt;4</title>\n<path fill=\"none\" stroke=\"black\" d=\"M283,-236.15C289.14,-227.57 295.62,-218.5 301.93,-209.67\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"305.2,-212.12 308.17,-201.95 299.51,-208.05 305.2,-212.12\"/>\n</g>\n<!-- 5 -->\n<g id=\"node6\" class=\"node\">\n<title>5</title>\n<path fill=\"#f5cdb0\" stroke=\"black\" d=\"M320.62,-74C320.62,-74 175.62,-74 175.62,-74 169.62,-74 163.62,-68 163.62,-62 163.62,-62 163.62,-12 163.62,-12 163.62,-6 169.62,0 175.62,0 175.62,0 320.62,0 320.62,0 326.62,0 332.62,-6 332.62,-12 332.62,-12 332.62,-62 332.62,-62 332.62,-68 326.62,-74 320.62,-74\"/>\n<text text-anchor=\"start\" x=\"211\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.654</text>\n<text text-anchor=\"start\" x=\"200.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 254</text>\n<text text-anchor=\"start\" x=\"171.62\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [131, 49, 34, 40]</text>\n<text text-anchor=\"start\" x=\"205\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 4&#45;&gt;5 -->\n<g id=\"edge5\" class=\"edge\">\n<title>4&#45;&gt;5</title>\n<path fill=\"none\" stroke=\"black\" d=\"M304.82,-109.64C297.9,-100.9 290.64,-91.73 283.72,-82.97\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"285.88,-81.06 276.93,-75.39 280.39,-85.41 285.88,-81.06\"/>\n</g>\n<!-- 6 -->\n<g id=\"node7\" class=\"node\">\n<title>6</title>\n<path fill=\"#e0f0fb\" stroke=\"black\" d=\"M499.5,-74C499.5,-74 362.75,-74 362.75,-74 356.75,-74 350.75,-68 350.75,-62 350.75,-62 350.75,-12 350.75,-12 350.75,-6 356.75,0 362.75,0 362.75,0 499.5,0 499.5,0 505.5,0 511.5,-6 511.5,-12 511.5,-12 511.5,-62 511.5,-62 511.5,-68 505.5,-74 499.5,-74\"/>\n<text text-anchor=\"start\" x=\"394\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">gini = 0.496</text>\n<text text-anchor=\"start\" x=\"383.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 271</text>\n<text text-anchor=\"start\" x=\"358.75\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [124, 0, 147, 0]</text>\n<text text-anchor=\"start\" x=\"390.25\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = good</text>\n</g>\n<!-- 4&#45;&gt;6 -->\n<g id=\"edge6\" class=\"edge\">\n<title>4&#45;&gt;6</title>\n<path fill=\"none\" stroke=\"black\" d=\"M375.05,-109.64C381.89,-100.9 389.07,-91.73 395.92,-82.97\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"399.23,-85.43 402.64,-75.39 393.72,-81.11 399.23,-85.43\"/>\n</g>\n</g>\n</svg>\n",
      "text/plain": [
       "<graphviz.sources.Source at 0x1386c280580>"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz \n",
    "# dot_data = tree.export_graphviz(clf_gini, out_file=None, \n",
    "#                               feature_names=X_train.columns,  \n",
    "#                               class_names=y_train,  \n",
    "#                               filled=True, rounded=True,  \n",
    "#                               special_characters=True)\n",
    "# https://graphviz.org/download/\n",
    "dot_data = tree.export_graphviz(clf_gini, out_file=None, \n",
    "                              feature_names=X_train.columns,  \n",
    "                              class_names=['unacc', 'acc', 'good', 'vgood'],  \n",
    "                              filled=True, rounded=True,  \n",
    "                              special_characters=True)\n",
    "\n",
    "graph = graphviz.Source(dot_data) \n",
    "\n",
    "graph "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **14. Decision Tree Classifier with criterion entropy** <a class=\"anchor\" id=\"14\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>DecisionTreeClassifier(criterion=&#x27;entropy&#x27;, max_depth=6, random_state=0)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" checked><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">DecisionTreeClassifier</label><div class=\"sk-toggleable__content\"><pre>DecisionTreeClassifier(criterion=&#x27;entropy&#x27;, max_depth=6, random_state=0)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "DecisionTreeClassifier(criterion='entropy', max_depth=6, random_state=0)"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# instantiate the DecisionTreeClassifier model with criterion entropy\n",
    "\n",
    "clf_en = DecisionTreeClassifier(criterion='entropy', max_depth=6, random_state=0)\n",
    "\n",
    "\n",
    "# fit the model\n",
    "clf_en.fit(X_train, y_train)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Predict the Test set results with criterion entropy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_en = clf_en.predict(X_test)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check accuracy score with criterion entropy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model accuracy score with criterion entropy: 0.9142\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "print('Model accuracy score with criterion entropy: {0:0.4f}'. format(accuracy_score(y_test, y_pred_en)))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compare the train-set and test-set accuracy\n",
    "\n",
    "\n",
    "Now, I will compare the train-set and test-set accuracy to check for overfitting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['unacc', 'unacc', 'unacc', ..., 'acc', 'unacc', 'acc'],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred_train_en = clf_en.predict(X_train)\n",
    "\n",
    "y_pred_train_en"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training-set accuracy score: 0.9188\n"
     ]
    }
   ],
   "source": [
    "print('Training-set accuracy score: {0:0.4f}'. format(accuracy_score(y_train, y_pred_train_en)))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check for overfitting and underfitting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training set score: 0.9188\n",
      "Test set score: 0.9142\n"
     ]
    }
   ],
   "source": [
    "# print the scores on training and test set\n",
    "\n",
    "print('Training set score: {:.4f}'.format(clf_en.score(X_train, y_train)))\n",
    "\n",
    "print('Test set score: {:.4f}'.format(clf_en.score(X_test, y_test)))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the training-set score and test-set score is same as above. The training-set accuracy score is 0.7865 while the test-set accuracy to be 0.8021. These two values are quite comparable. So, there is no sign of overfitting. \n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize decision-trees"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5208333333333334, 0.9285714285714286, 'x[5] <= 0.5\\nentropy = 1.2\\nsamples = 1157\\nvalue = [255, 49, 813, 40]'),\n",
       " Text(0.4791666666666667, 0.7857142857142857, 'entropy = 0.0\\nsamples = 386\\nvalue = [0, 0, 386, 0]'),\n",
       " Text(0.5625, 0.7857142857142857, 'x[3] <= 0.5\\nentropy = 1.474\\nsamples = 771\\nvalue = [255, 49, 427, 40]'),\n",
       " Text(0.5208333333333334, 0.6428571428571429, 'entropy = 0.0\\nsamples = 246\\nvalue = [0, 0, 246, 0]'),\n",
       " Text(0.6041666666666666, 0.6428571428571429, 'x[0] <= 1.5\\nentropy = 1.638\\nsamples = 525\\nvalue = [255, 49, 181, 40]'),\n",
       " Text(0.3333333333333333, 0.5, 'x[1] <= 1.5\\nentropy = 1.759\\nsamples = 254\\nvalue = [131, 49, 34, 40]'),\n",
       " Text(0.16666666666666666, 0.35714285714285715, 'x[5] <= 1.5\\nentropy = 1.781\\nsamples = 125\\nvalue = [39, 49, 7, 30]'),\n",
       " Text(0.08333333333333333, 0.21428571428571427, 'x[4] <= 0.5\\nentropy = 1.208\\nsamples = 67\\nvalue = [36, 28, 3, 0]'),\n",
       " Text(0.041666666666666664, 0.07142857142857142, 'entropy = 0.544\\nsamples = 24\\nvalue = [21, 0, 3, 0]'),\n",
       " Text(0.125, 0.07142857142857142, 'entropy = 0.933\\nsamples = 43\\nvalue = [15, 28, 0, 0]'),\n",
       " Text(0.25, 0.21428571428571427, 'x[4] <= 0.5\\nentropy = 1.51\\nsamples = 58\\nvalue = [3, 21, 4, 30]'),\n",
       " Text(0.20833333333333334, 0.07142857142857142, 'entropy = 1.216\\nsamples = 22\\nvalue = [3, 15, 4, 0]'),\n",
       " Text(0.2916666666666667, 0.07142857142857142, 'entropy = 0.65\\nsamples = 36\\nvalue = [0, 6, 0, 30]'),\n",
       " Text(0.5, 0.35714285714285715, 'x[5] <= 1.5\\nentropy = 1.106\\nsamples = 129\\nvalue = [92, 0, 27, 10]'),\n",
       " Text(0.4166666666666667, 0.21428571428571427, 'x[4] <= 0.5\\nentropy = 0.963\\nsamples = 62\\nvalue = [38, 0, 24, 0]'),\n",
       " Text(0.375, 0.07142857142857142, 'entropy = 0.684\\nsamples = 22\\nvalue = [4, 0, 18, 0]'),\n",
       " Text(0.4583333333333333, 0.07142857142857142, 'entropy = 0.61\\nsamples = 40\\nvalue = [34, 0, 6, 0]'),\n",
       " Text(0.5833333333333334, 0.21428571428571427, 'x[1] <= 2.5\\nentropy = 0.861\\nsamples = 67\\nvalue = [54, 0, 3, 10]'),\n",
       " Text(0.5416666666666666, 0.07142857142857142, 'entropy = 1.05\\nsamples = 34\\nvalue = [23, 0, 1, 10]'),\n",
       " Text(0.625, 0.07142857142857142, 'entropy = 0.33\\nsamples = 33\\nvalue = [31, 0, 2, 0]'),\n",
       " Text(0.875, 0.5, 'x[1] <= 2.5\\nentropy = 0.995\\nsamples = 271\\nvalue = [124, 0, 147, 0]'),\n",
       " Text(0.8333333333333334, 0.35714285714285715, 'x[5] <= 1.5\\nentropy = 0.964\\nsamples = 203\\nvalue = [124, 0, 79, 0]'),\n",
       " Text(0.75, 0.21428571428571427, 'x[4] <= 0.5\\nentropy = 0.979\\nsamples = 101\\nvalue = [42, 0, 59, 0]'),\n",
       " Text(0.7083333333333334, 0.07142857142857142, 'entropy = 0.0\\nsamples = 35\\nvalue = [0, 0, 35, 0]'),\n",
       " Text(0.7916666666666666, 0.07142857142857142, 'entropy = 0.946\\nsamples = 66\\nvalue = [42, 0, 24, 0]'),\n",
       " Text(0.9166666666666666, 0.21428571428571427, 'x[1] <= 1.5\\nentropy = 0.714\\nsamples = 102\\nvalue = [82, 0, 20, 0]'),\n",
       " Text(0.875, 0.07142857142857142, 'entropy = 0.187\\nsamples = 70\\nvalue = [68, 0, 2, 0]'),\n",
       " Text(0.9583333333333334, 0.07142857142857142, 'entropy = 0.989\\nsamples = 32\\nvalue = [14, 0, 18, 0]'),\n",
       " Text(0.9166666666666666, 0.35714285714285715, 'entropy = 0.0\\nsamples = 68\\nvalue = [0, 0, 68, 0]')]"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAAJ8CAYAAADK/j3+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAADBdUlEQVR4nOzdeXxN1/7/8VciEVNiiqFqriJoiVAx11TU0JqdKLfVGnpNJ3pb5casVTokSNqqKqpNzNTMNYRQ81BTzENMQWQgIYkk5/dHv85PTA2S7Azv5+PxfSD77LXf53x7187nrLXXsrFYLBZEREREREREMilbowOIiIiIiIiIvAgVtiIiIiIiIpKpqbAVERERERGRTE2FrYiIiIiIiGRqKmxFREREREQkU1NhKyIiIiIiIpmaClsRERERERHJ1FTYioiIiIiISKamwlZEREREREQyNRW2IiIiIiIikqmpsBUREREREZFMTYWtiIiIiIiIZGoqbEVERERERCRTU2ErIiIiIiIimZoKWxEREREREcnUVNiKiIiIiIhIpqbCVkRERERERDI1FbYiIiIiIiKSqamwFRERERERkUxNha2IiIiIiIhkaipsRUREREREJFNTYSsiIiIiIiKZmgpbERERERERydRU2IqIiIiIiEimpsJWREREREREMjUVtiIiIiIiIpKpqbAVERERERGRTE2FrYiIiIiIiGRqKmxFREREREQkU1NhKyIiIiIiIpmaClsRERERERHJ1FTYioiIiIiISKamwlZEREREREQyNRW2IiIiIiIikqmpsBUREREREZFMTYWtiIiIiIiIZGoqbEVERERERCRTU2ErIiIiIiIimZoKWxEREREREcnU7IwOICIikhGFhIQQFhZmdIxMxdnZmdKlSxsdQ0REsiEVtiIiIg8JCQnBxcWFO3fuGB0lU8mTJw/BwcEqbkVEJN2psBUREXlIWFgYd+7c4bfffsPFxcXoOJlCcHAw7733HmFhYSpsRUQk3amwFREReQIXFxdq1qyZZu0HBgayceNGxo8fT9euXalXrx5du3bl2rVrzJkzBx8fn0fOSUhIwM7uybfvP/74g5MnT2Jvb4/ZbLZeZ9GiRdSqVYv3338/bd6MiIiIgVTYioiIpKOAgAAcHR3ZtWsXzZo1o3HjxgAULVqUmzdvYmdnh6urK4sXL7aeY7FYCAoK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iIjIc9GIrYiISCo7ePAgmzdvxtPT0+go/6hQoUL861//ws/Pj7i4OKPjiIiIPBcVtiIiIqnMx8eHUqVK0bFjR6OjpIjZbObatWsZ9llgERGRf6KpyCIiIqkoNDSUMmXKMGHCBD799FOj46RYmzZtuHLlCvv378fGxsboOCIiIs9EI7YiIiKp6IcffsDe3p4+ffoYHeWZmM1mDh48yJYtW4yOIiIi8sw0YisiIpJKYmNjKV26NN26dWPatGlGx3kmFouF119/nfLly/PHH38YHUdEROSZaMRWREQklfz++++EhYUxePBgo6M8MxsbG8xmMytWrOD06dNGxxEREXkmGrEVERFJBfdHPMuVK8fy5cuNjvNcYmNjKVWqFCaTialTpxodR0REJMU0YisiIpIKNm7cyJEjRzLFFj9PkitXLj7++GN++eUXIiMjjY4jIiKSYipsRUREUoG3tzevv/46b775ptFRXsi///1v7t27x88//2x0FBERkRRTYSsiIvKCjh8/zurVq/H09Mz0W+UUL14ck8nEtGnTSEhIMDqOiIhIiqiwFREReUFTp06lWLFimEwmo6OkCrPZTEhICEuXLjU6ioiISIpo8SgREZEXEB4eTqlSpRg2bBijRo0yOk6qadKkCXFxcfz5559GRxEREflHGrEVERF5AT/99BOJiYn079/f6CipytPTkx07drBr1y6jo4iIiPwjjdiKiIg8p3v37lGuXDlatmzJzJkzjY6TqpKSkqhYsSK1a9cmICDA6DgiIiJPpRFbERGR57Ro0SIuX76M2Ww2Okqqs7W1ZciQISxcuJCLFy8aHUdEROSpNGIrIiLyHCwWC3Xq1MHJyYkNGzYYHSdNREdHU7JkSfr168ekSZOMjiMiIvJEGrEVERF5Dn/++Sd79uzB09PT6ChpJl++fPTp04effvqJmJgYo+OIiIg8kQpbERGR5+Dj40OlSpVo3bq10VHS1MCBA7l16xZz5swxOoqIiMgTaSqyiIjIMzp//jyvvPIKvr6+fPzxx0bHSXOdOnViz5492NvbExwcTM6cOY2OJCIikoyd0QFEREQym2nTppE/f3569epldJQ0d/DgQf744w8SExOBv1dLFhERyWg0FVlERCSFLBYLERER/Pzzz/Tt25e8efMaHSnNVatWzbpHr42NDQ4ODgYnEhEReZRGbEVERFJo7Nix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yWSiY8eOFChQwOiI8hTnz59n3rx5+Pv7c/jwYQoWLEinTp3w8PCgUaNG5MiRw+iIIiLpSoWtiIhINhEfH8/69esJCAjgjz/+ICYmBnd3d0wmE127dqV48eJGR5TncOTIEeuz0OfOneOll16ie/fumEwmatWqpYW9RCRbUGErIiKShSUlJREUFIS/vz+LFi0iPDycqlWr4uHhQffu3SlfvrzRESWVWCwWdu3aRUBAAPPnz+fatWtUqFDBun2Qi4uL0RFFRNKMClsREZEsxmKxsH//fuv2PJcvX6ZMmTKYTCY8PDx47bXXjI4oaSwhIYHAwEACAgJYvHgxUVFR1KhRA5PJRPfu3SldurTREUVEUpUKWxERkSzixIkT1impJ0+epGjRonTt2hUPDw/c3d01JTWbio2NZe3atfj7+7NixQpiY2Np0KABJpOJLl26UKRIEaMjioi8MBW2IiIimdilS5eYN28eAQEB7N+/HycnJzp27IjJZKJp06bY2dkZHVEykNu3b7Ns2TICAgJYv349AC1atMDDw4N3330XR0dHgxOKiDwfFbYiIiKZzM2bN1m0aBH+/v4EBQWRM2dO2rVrh8lk4u233yZXrlxGR5RM4MaNG9b/jrZt20auXLms/x21bt1a/x2JSKaiwlZERCQTiI6O5o8//iAgIIB169ZhsVho3ry5daTNycnJ6IiSiYWEhDB//nz8/f05ePAg+fPnt478N2nSRCP/IpLhqbAVERHJoOLi4li7di0BAQEsX76cu3fvUr9+feuzkUWLFjU6omRBwcHB1me1T58+TbFixazPatepU0fPaotIhqTCVkREJANJTExky5Yt+Pv7s3jxYiIjI6levbp1NdsyZcoYHVGyCYvFwt69e62ra1+9epVy5cpZtw+qVq2a0RFFRKxU2IqIiBjMYrGwZ88e6/6jV69epXz58nh4eGAymahSpYrRESWbS0xMZOvWrdYvXCIiInjttdesX7iUK1fO6Igiks2psBURETHIsWPHrFM+z5w5Q/HixenWrRseHh7Url1bUz4lQ4qPj2fdunX4+/uzfPly7ty5Q926dTGZTHTt2pVixYoZHVFEsiEVtiIiIunowoUL1u15/vrrLwoUKECnTp0wmUy8+eab5MiRw+iIIikWHR3N8uXLCQgIYO3atSQlJdGsWTM8PDzo0KED+fPnNzqiiGQT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",
      "text/plain": [
       "<Figure size 1200x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12,8))\n",
    "\n",
    "from sklearn import tree\n",
    "\n",
    "tree.plot_tree(clf_en.fit(X_train, y_train)) "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize decision-trees with graphviz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<!-- Generated by graphviz version 8.0.5 (20230430.1635)\n -->\n<!-- Title: Tree Pages: 1 -->\n<svg width=\"1870pt\" height=\"841pt\"\n viewBox=\"0.00 0.00 1870.12 841.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 837)\">\n<title>Tree</title>\n<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-837 1866.12,-837 1866.12,4 -4,4\"/>\n<!-- 0 -->\n<g id=\"node1\" class=\"node\">\n<title>0</title>\n<path fill=\"#85c2ef\" stroke=\"black\" d=\"M1058.62,-833C1058.62,-833 905.38,-833 905.38,-833 899.38,-833 893.38,-827 893.38,-821 893.38,-821 893.38,-754.5 893.38,-754.5 893.38,-748.5 899.38,-742.5 905.38,-742.5 905.38,-742.5 1058.62,-742.5 1058.62,-742.5 1064.62,-742.5 1070.62,-748.5 1070.62,-754.5 1070.62,-754.5 1070.62,-821 1070.62,-821 1070.62,-827 1064.62,-833 1058.62,-833\"/>\n<text text-anchor=\"start\" x=\"945.25\" y=\"-815.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">safety ≤ 0.5</text>\n<text text-anchor=\"start\" x=\"940.38\" y=\"-799.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.2</text>\n<text text-anchor=\"start\" x=\"930.62\" y=\"-782.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 1157</text>\n<text text-anchor=\"start\" x=\"901.38\" y=\"-766.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [255, 49, 813, 40]</text>\n<text text-anchor=\"start\" x=\"938.88\" y=\"-749.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 1 -->\n<g id=\"node2\" class=\"node\">\n<title>1</title>\n<path fill=\"#399de5\" stroke=\"black\" d=\"M953.12,-698.25C953.12,-698.25 832.88,-698.25 832.88,-698.25 826.88,-698.25 820.88,-692.25 820.88,-686.25 820.88,-686.25 820.88,-636.25 820.88,-636.25 820.88,-630.25 826.88,-624.25 832.88,-624.25 832.88,-624.25 953.12,-624.25 953.12,-624.25 959.12,-624.25 965.12,-630.25 965.12,-636.25 965.12,-636.25 965.12,-686.25 965.12,-686.25 965.12,-692.25 959.12,-698.25 953.12,-698.25\"/>\n<text text-anchor=\"start\" x=\"851.38\" y=\"-680.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n<text text-anchor=\"start\" x=\"845.75\" y=\"-664.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 386</text>\n<text text-anchor=\"start\" x=\"828.88\" y=\"-647.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 386, 0]</text>\n<text text-anchor=\"start\" x=\"849.88\" y=\"-631.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 0&#45;&gt;1 -->\n<g id=\"edge1\" class=\"edge\">\n<title>0&#45;&gt;1</title>\n<path fill=\"none\" stroke=\"black\" d=\"M950.12,-742.15C942.01,-730.81 933.3,-718.62 925.17,-707.26\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"927.47,-705.46 918.81,-699.36 921.78,-709.53 927.47,-705.46\"/>\n<text text-anchor=\"middle\" x=\"914.71\" y=\"-717.97\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">True</text>\n</g>\n<!-- 2 -->\n<g id=\"node3\" class=\"node\">\n<title>2</title>\n<path fill=\"#bddef6\" stroke=\"black\" d=\"M1148.62,-706.5C1148.62,-706.5 995.38,-706.5 995.38,-706.5 989.38,-706.5 983.38,-700.5 983.38,-694.5 983.38,-694.5 983.38,-628 983.38,-628 983.38,-622 989.38,-616 995.38,-616 995.38,-616 1148.62,-616 1148.62,-616 1154.62,-616 1160.62,-622 1160.62,-628 1160.62,-628 1160.62,-694.5 1160.62,-694.5 1160.62,-700.5 1154.62,-706.5 1148.62,-706.5\"/>\n<text text-anchor=\"start\" x=\"1028.5\" y=\"-689.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">persons ≤ 0.5</text>\n<text text-anchor=\"start\" x=\"1022.12\" y=\"-672.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.474</text>\n<text text-anchor=\"start\" x=\"1024.75\" y=\"-656.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 771</text>\n<text text-anchor=\"start\" x=\"991.38\" y=\"-639.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [255, 49, 427, 40]</text>\n<text text-anchor=\"start\" x=\"1028.88\" y=\"-623.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 0&#45;&gt;2 -->\n<g id=\"edge2\" class=\"edge\">\n<title>0&#45;&gt;2</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1014.24,-742.15C1020.44,-733.57 1027,-724.5 1033.38,-715.67\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1036.66,-718.11 1039.68,-707.95 1030.99,-714.01 1036.66,-718.11\"/>\n<text text-anchor=\"middle\" x=\"1043.65\" y=\"-726.59\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">False</text>\n</g>\n<!-- 3 -->\n<g id=\"node4\" class=\"node\">\n<title>3</title>\n<path fill=\"#399de5\" stroke=\"black\" d=\"M1043.12,-571.75C1043.12,-571.75 922.88,-571.75 922.88,-571.75 916.88,-571.75 910.88,-565.75 910.88,-559.75 910.88,-559.75 910.88,-509.75 910.88,-509.75 910.88,-503.75 916.88,-497.75 922.88,-497.75 922.88,-497.75 1043.12,-497.75 1043.12,-497.75 1049.12,-497.75 1055.12,-503.75 1055.12,-509.75 1055.12,-509.75 1055.12,-559.75 1055.12,-559.75 1055.12,-565.75 1049.12,-571.75 1043.12,-571.75\"/>\n<text text-anchor=\"start\" x=\"941.38\" y=\"-554.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n<text text-anchor=\"start\" x=\"935.75\" y=\"-537.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 246</text>\n<text text-anchor=\"start\" x=\"918.88\" y=\"-521.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 246, 0]</text>\n<text text-anchor=\"start\" x=\"939.88\" y=\"-504.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 2&#45;&gt;3 -->\n<g id=\"edge3\" class=\"edge\">\n<title>2&#45;&gt;3</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1040.12,-615.65C1032.01,-604.31 1023.3,-592.12 1015.17,-580.76\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1017.47,-578.96 1008.81,-572.86 1011.78,-583.03 1017.47,-578.96\"/>\n</g>\n<!-- 4 -->\n<g id=\"node5\" class=\"node\">\n<title>4</title>\n<path fill=\"#f9e4d4\" stroke=\"black\" d=\"M1238.62,-580C1238.62,-580 1085.38,-580 1085.38,-580 1079.38,-580 1073.38,-574 1073.38,-568 1073.38,-568 1073.38,-501.5 1073.38,-501.5 1073.38,-495.5 1079.38,-489.5 1085.38,-489.5 1085.38,-489.5 1238.62,-489.5 1238.62,-489.5 1244.62,-489.5 1250.62,-495.5 1250.62,-501.5 1250.62,-501.5 1250.62,-568 1250.62,-568 1250.62,-574 1244.62,-580 1238.62,-580\"/>\n<text text-anchor=\"start\" x=\"1123.75\" y=\"-562.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">buying ≤ 1.5</text>\n<text text-anchor=\"start\" x=\"1112.12\" y=\"-546.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.638</text>\n<text text-anchor=\"start\" x=\"1114.75\" y=\"-529.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 525</text>\n<text text-anchor=\"start\" x=\"1081.38\" y=\"-513.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [255, 49, 181, 40]</text>\n<text text-anchor=\"start\" x=\"1118.88\" y=\"-496.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 2&#45;&gt;4 -->\n<g id=\"edge4\" class=\"edge\">\n<title>2&#45;&gt;4</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1104.24,-615.65C1110.44,-607.07 1117,-598 1123.38,-589.17\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1126.66,-591.61 1129.68,-581.45 1120.99,-587.51 1126.66,-591.61\"/>\n</g>\n<!-- 5 -->\n<g id=\"node6\" class=\"node\">\n<title>5</title>\n<path fill=\"#f5cdb0\" stroke=\"black\" d=\"M997.5,-453.5C997.5,-453.5 852.5,-453.5 852.5,-453.5 846.5,-453.5 840.5,-447.5 840.5,-441.5 840.5,-441.5 840.5,-375 840.5,-375 840.5,-369 846.5,-363 852.5,-363 852.5,-363 997.5,-363 997.5,-363 1003.5,-363 1009.5,-369 1009.5,-375 1009.5,-375 1009.5,-441.5 1009.5,-441.5 1009.5,-447.5 1003.5,-453.5 997.5,-453.5\"/>\n<text text-anchor=\"start\" x=\"890.5\" y=\"-436.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">maint ≤ 1.5</text>\n<text text-anchor=\"start\" x=\"875.12\" y=\"-419.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.759</text>\n<text text-anchor=\"start\" x=\"877.75\" y=\"-403.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 254</text>\n<text text-anchor=\"start\" x=\"848.5\" y=\"-386.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [131, 49, 34, 40]</text>\n<text text-anchor=\"start\" x=\"881.88\" y=\"-370.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 4&#45;&gt;5 -->\n<g id=\"edge5\" class=\"edge\">\n<title>4&#45;&gt;5</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1077.11,-489.15C1058.36,-479.31 1038.39,-468.81 1019.29,-458.78\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1021.18,-455.3 1010.7,-453.74 1017.92,-461.49 1021.18,-455.3\"/>\n</g>\n<!-- 20 -->\n<g id=\"node21\" class=\"node\">\n<title>20</title>\n<path fill=\"#e0f0fb\" stroke=\"black\" d=\"M1461.38,-453.5C1461.38,-453.5 1324.62,-453.5 1324.62,-453.5 1318.62,-453.5 1312.62,-447.5 1312.62,-441.5 1312.62,-441.5 1312.62,-375 1312.62,-375 1312.62,-369 1318.62,-363 1324.62,-363 1324.62,-363 1461.38,-363 1461.38,-363 1467.38,-363 1473.38,-369 1473.38,-375 1473.38,-375 1473.38,-441.5 1473.38,-441.5 1473.38,-447.5 1467.38,-453.5 1461.38,-453.5\"/>\n<text text-anchor=\"start\" x=\"1358.5\" y=\"-436.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">maint ≤ 2.5</text>\n<text text-anchor=\"start\" x=\"1343.12\" y=\"-419.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.995</text>\n<text text-anchor=\"start\" x=\"1345.75\" y=\"-403.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 271</text>\n<text text-anchor=\"start\" x=\"1320.62\" y=\"-386.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [124, 0, 147, 0]</text>\n<text text-anchor=\"start\" x=\"1349.88\" y=\"-370.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 4&#45;&gt;20 -->\n<g id=\"edge20\" class=\"edge\">\n<title>4&#45;&gt;20</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1244.74,-489.15C1263.57,-479.01 1283.66,-468.18 1302.78,-457.87\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1304.24,-460.53 1311.38,-452.7 1300.92,-454.36 1304.24,-460.53\"/>\n</g>\n<!-- 6 -->\n<g id=\"node7\" class=\"node\">\n<title>6</title>\n<path fill=\"#eafce8\" stroke=\"black\" d=\"M527.25,-327C527.25,-327 398.75,-327 398.75,-327 392.75,-327 386.75,-321 386.75,-315 386.75,-315 386.75,-248.5 386.75,-248.5 386.75,-242.5 392.75,-236.5 398.75,-236.5 398.75,-236.5 527.25,-236.5 527.25,-236.5 533.25,-236.5 539.25,-242.5 539.25,-248.5 539.25,-248.5 539.25,-315 539.25,-315 539.25,-321 533.25,-327 527.25,-327\"/>\n<text text-anchor=\"start\" x=\"426.25\" y=\"-309.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">safety ≤ 1.5</text>\n<text text-anchor=\"start\" x=\"413.12\" y=\"-293.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.781</text>\n<text text-anchor=\"start\" x=\"415.75\" y=\"-276.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 125</text>\n<text text-anchor=\"start\" x=\"394.75\" y=\"-260.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [39, 49, 7, 30]</text>\n<text text-anchor=\"start\" x=\"419.88\" y=\"-243.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 5&#45;&gt;6 -->\n<g id=\"edge6\" class=\"edge\">\n<title>5&#45;&gt;6</title>\n<path fill=\"none\" stroke=\"black\" d=\"M840.26,-384.41C757.82,-362.2 633.16,-328.61 549.97,-306.19\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"551.1,-302.6 540.53,-303.37 549.28,-309.36 551.1,-302.6\"/>\n</g>\n<!-- 13 -->\n<g id=\"node14\" class=\"node\">\n<title>13</title>\n<path fill=\"#eeaf81\" stroke=\"black\" d=\"M989.25,-327C989.25,-327 860.75,-327 860.75,-327 854.75,-327 848.75,-321 848.75,-315 848.75,-315 848.75,-248.5 848.75,-248.5 848.75,-242.5 854.75,-236.5 860.75,-236.5 860.75,-236.5 989.25,-236.5 989.25,-236.5 995.25,-236.5 1001.25,-242.5 1001.25,-248.5 1001.25,-248.5 1001.25,-315 1001.25,-315 1001.25,-321 995.25,-327 989.25,-327\"/>\n<text text-anchor=\"start\" x=\"888.25\" y=\"-309.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">safety ≤ 1.5</text>\n<text text-anchor=\"start\" x=\"875.12\" y=\"-293.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.106</text>\n<text text-anchor=\"start\" x=\"877.75\" y=\"-276.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 129</text>\n<text text-anchor=\"start\" x=\"856.75\" y=\"-260.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [92, 0, 27, 10]</text>\n<text text-anchor=\"start\" x=\"881.88\" y=\"-243.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 5&#45;&gt;13 -->\n<g id=\"edge13\" class=\"edge\">\n<title>5&#45;&gt;13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M925,-362.65C925,-354.79 925,-346.51 925,-338.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"928.5,-338.45 925,-328.45 921.5,-338.45 928.5,-338.45\"/>\n</g>\n<!-- 7 -->\n<g id=\"node8\" class=\"node\">\n<title>7</title>\n<path fill=\"#fae5d6\" stroke=\"black\" d=\"M286.12,-200.5C286.12,-200.5 165.88,-200.5 165.88,-200.5 159.88,-200.5 153.88,-194.5 153.88,-188.5 153.88,-188.5 153.88,-122 153.88,-122 153.88,-116 159.88,-110 165.88,-110 165.88,-110 286.12,-110 286.12,-110 292.12,-110 298.12,-116 298.12,-122 298.12,-122 298.12,-188.5 298.12,-188.5 298.12,-194.5 292.12,-200.5 286.12,-200.5\"/>\n<text text-anchor=\"start\" x=\"180.62\" y=\"-183.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">lug_boot ≤ 0.5</text>\n<text text-anchor=\"start\" x=\"176.12\" y=\"-166.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.208</text>\n<text text-anchor=\"start\" x=\"182.88\" y=\"-150.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 67</text>\n<text text-anchor=\"start\" x=\"161.88\" y=\"-133.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [36, 28, 3, 0]</text>\n<text text-anchor=\"start\" x=\"182.88\" y=\"-117.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 6&#45;&gt;7 -->\n<g id=\"edge7\" class=\"edge\">\n<title>6&#45;&gt;7</title>\n<path fill=\"none\" stroke=\"black\" d=\"M386.38,-240.5C361.32,-227.33 333.39,-212.66 307.95,-199.3\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"309.81,-195.8 299.33,-194.25 306.55,-201.99 309.81,-195.8\"/>\n</g>\n<!-- 10 -->\n<g id=\"node11\" class=\"node\">\n<title>10</title>\n<path fill=\"#f5cff9\" stroke=\"black\" d=\"M523.12,-200.5C523.12,-200.5 402.88,-200.5 402.88,-200.5 396.88,-200.5 390.88,-194.5 390.88,-188.5 390.88,-188.5 390.88,-122 390.88,-122 390.88,-116 396.88,-110 402.88,-110 402.88,-110 523.12,-110 523.12,-110 529.12,-110 535.12,-116 535.12,-122 535.12,-122 535.12,-188.5 535.12,-188.5 535.12,-194.5 529.12,-200.5 523.12,-200.5\"/>\n<text text-anchor=\"start\" x=\"417.62\" y=\"-183.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">lug_boot ≤ 0.5</text>\n<text text-anchor=\"start\" x=\"417.25\" y=\"-166.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.51</text>\n<text text-anchor=\"start\" x=\"419.88\" y=\"-150.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 58</text>\n<text text-anchor=\"start\" x=\"398.88\" y=\"-133.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [3, 21, 4, 30]</text>\n<text text-anchor=\"start\" x=\"419.88\" y=\"-117.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 6&#45;&gt;10 -->\n<g id=\"edge10\" class=\"edge\">\n<title>6&#45;&gt;10</title>\n<path fill=\"none\" stroke=\"black\" d=\"M463,-236.15C463,-228.29 463,-220.01 463,-211.89\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"466.5,-211.95 463,-201.95 459.5,-211.95 466.5,-211.95\"/>\n</g>\n<!-- 8 -->\n<g id=\"node9\" class=\"node\">\n<title>8</title>\n<path fill=\"#e99355\" stroke=\"black\" d=\"M124,-74C124,-74 12,-74 12,-74 6,-74 0,-68 0,-62 0,-62 0,-12 0,-12 0,-6 6,0 12,0 12,0 124,0 124,0 130,0 136,-6 136,-12 136,-12 136,-62 136,-62 136,-68 130,-74 124,-74\"/>\n<text text-anchor=\"start\" x=\"18.12\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.544</text>\n<text text-anchor=\"start\" x=\"24.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 24</text>\n<text text-anchor=\"start\" x=\"8\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [21, 0, 3, 0]</text>\n<text text-anchor=\"start\" x=\"24.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 7&#45;&gt;8 -->\n<g id=\"edge8\" class=\"edge\">\n<title>7&#45;&gt;8</title>\n<path fill=\"none\" stroke=\"black\" d=\"M165.36,-109.64C152.5,-100.17 138.94,-90.19 126.16,-80.8\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"128.59,-77.5 118.46,-74.39 124.44,-83.14 128.59,-77.5\"/>\n</g>\n<!-- 9 -->\n<g id=\"node10\" class=\"node\">\n<title>9</title>\n<path fill=\"#aaf3a3\" stroke=\"black\" d=\"M286.12,-74C286.12,-74 165.88,-74 165.88,-74 159.88,-74 153.88,-68 153.88,-62 153.88,-62 153.88,-12 153.88,-12 153.88,-6 159.88,0 165.88,0 165.88,0 286.12,0 286.12,0 292.12,0 298.12,-6 298.12,-12 298.12,-12 298.12,-62 298.12,-62 298.12,-68 292.12,-74 286.12,-74\"/>\n<text text-anchor=\"start\" x=\"176.12\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.933</text>\n<text text-anchor=\"start\" x=\"182.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 43</text>\n<text text-anchor=\"start\" x=\"161.88\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [15, 28, 0, 0]</text>\n<text text-anchor=\"start\" x=\"182.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 7&#45;&gt;9 -->\n<g id=\"edge9\" class=\"edge\">\n<title>7&#45;&gt;9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M226,-109.64C226,-101.63 226,-93.25 226,-85.17\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"229.5,-85.39 226,-75.39 222.5,-85.39 229.5,-85.39\"/>\n</g>\n<!-- 11 -->\n<g id=\"node12\" class=\"node\">\n<title>11</title>\n<path fill=\"#8fef86\" stroke=\"black\" d=\"M440,-74C440,-74 328,-74 328,-74 322,-74 316,-68 316,-62 316,-62 316,-12 316,-12 316,-6 322,0 328,0 328,0 440,0 440,0 446,0 452,-6 452,-12 452,-12 452,-62 452,-62 452,-68 446,-74 440,-74\"/>\n<text text-anchor=\"start\" x=\"334.12\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.216</text>\n<text text-anchor=\"start\" x=\"340.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 22</text>\n<text text-anchor=\"start\" x=\"324\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [3, 15, 4, 0]</text>\n<text text-anchor=\"start\" x=\"340.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 10&#45;&gt;11 -->\n<g id=\"edge11\" class=\"edge\">\n<title>10&#45;&gt;11</title>\n<path fill=\"none\" stroke=\"black\" d=\"M432.68,-109.64C426.8,-100.99 420.64,-91.92 414.75,-83.25\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"417.25,-81.7 408.73,-75.39 411.46,-85.63 417.25,-81.7\"/>\n</g>\n<!-- 12 -->\n<g id=\"node13\" class=\"node\">\n<title>12</title>\n<path fill=\"#df61ea\" stroke=\"black\" d=\"M594,-74C594,-74 482,-74 482,-74 476,-74 470,-68 470,-62 470,-62 470,-12 470,-12 470,-6 476,0 482,0 482,0 594,0 594,0 600,0 606,-6 606,-12 606,-12 606,-62 606,-62 606,-68 600,-74 594,-74\"/>\n<text text-anchor=\"start\" x=\"492.25\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.65</text>\n<text text-anchor=\"start\" x=\"494.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 36</text>\n<text text-anchor=\"start\" x=\"478\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 6, 0, 30]</text>\n<text text-anchor=\"start\" x=\"494.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 10&#45;&gt;12 -->\n<g id=\"edge12\" class=\"edge\">\n<title>10&#45;&gt;12</title>\n<path fill=\"none\" stroke=\"black\" d=\"M491.78,-109.64C497.3,-101.08 503.09,-92.11 508.63,-83.52\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"512.04,-85.69 514.52,-75.39 506.16,-81.9 512.04,-85.69\"/>\n</g>\n<!-- 14 -->\n<g id=\"node15\" class=\"node\">\n<title>14</title>\n<path fill=\"#f5d1b6\" stroke=\"black\" d=\"M904.12,-200.5C904.12,-200.5 783.88,-200.5 783.88,-200.5 777.88,-200.5 771.88,-194.5 771.88,-188.5 771.88,-188.5 771.88,-122 771.88,-122 771.88,-116 777.88,-110 783.88,-110 783.88,-110 904.12,-110 904.12,-110 910.12,-110 916.12,-116 916.12,-122 916.12,-122 916.12,-188.5 916.12,-188.5 916.12,-194.5 910.12,-200.5 904.12,-200.5\"/>\n<text text-anchor=\"start\" x=\"798.62\" y=\"-183.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">lug_boot ≤ 0.5</text>\n<text text-anchor=\"start\" x=\"794.12\" y=\"-166.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.963</text>\n<text text-anchor=\"start\" x=\"800.88\" y=\"-150.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 62</text>\n<text text-anchor=\"start\" x=\"779.88\" y=\"-133.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [38, 0, 24, 0]</text>\n<text text-anchor=\"start\" x=\"800.88\" y=\"-117.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 13&#45;&gt;14 -->\n<g id=\"edge14\" class=\"edge\">\n<title>13&#45;&gt;14</title>\n<path fill=\"none\" stroke=\"black\" d=\"M895.99,-236.15C890.46,-227.66 884.62,-218.69 878.94,-209.95\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"881.47,-208.43 873.08,-201.95 875.6,-212.24 881.47,-208.43\"/>\n</g>\n<!-- 17 -->\n<g id=\"node18\" class=\"node\">\n<title>17</title>\n<path fill=\"#eb9e66\" stroke=\"black\" d=\"M1066.12,-200.5C1066.12,-200.5 945.88,-200.5 945.88,-200.5 939.88,-200.5 933.88,-194.5 933.88,-188.5 933.88,-188.5 933.88,-122 933.88,-122 933.88,-116 939.88,-110 945.88,-110 945.88,-110 1066.12,-110 1066.12,-110 1072.12,-110 1078.12,-116 1078.12,-122 1078.12,-122 1078.12,-188.5 1078.12,-188.5 1078.12,-194.5 1072.12,-200.5 1066.12,-200.5\"/>\n<text text-anchor=\"start\" x=\"971.5\" y=\"-183.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">maint ≤ 2.5</text>\n<text text-anchor=\"start\" x=\"956.12\" y=\"-166.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.861</text>\n<text text-anchor=\"start\" x=\"962.88\" y=\"-150.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 67</text>\n<text text-anchor=\"start\" x=\"941.88\" y=\"-133.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [54, 0, 3, 10]</text>\n<text text-anchor=\"start\" x=\"962.88\" y=\"-117.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 13&#45;&gt;17 -->\n<g id=\"edge17\" class=\"edge\">\n<title>13&#45;&gt;17</title>\n<path fill=\"none\" stroke=\"black\" d=\"M954.01,-236.15C959.54,-227.66 965.38,-218.69 971.06,-209.95\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"974.4,-212.24 976.92,-201.95 968.53,-208.43 974.4,-212.24\"/>\n</g>\n<!-- 15 -->\n<g id=\"node16\" class=\"node\">\n<title>15</title>\n<path fill=\"#65b3eb\" stroke=\"black\" d=\"M748,-74C748,-74 636,-74 636,-74 630,-74 624,-68 624,-62 624,-62 624,-12 624,-12 624,-6 630,0 636,0 636,0 748,0 748,0 754,0 760,-6 760,-12 760,-12 760,-62 760,-62 760,-68 754,-74 748,-74\"/>\n<text text-anchor=\"start\" x=\"642.12\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.684</text>\n<text text-anchor=\"start\" x=\"648.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 22</text>\n<text text-anchor=\"start\" x=\"632\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [4, 0, 18, 0]</text>\n<text text-anchor=\"start\" x=\"648.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 14&#45;&gt;15 -->\n<g id=\"edge15\" class=\"edge\">\n<title>14&#45;&gt;15</title>\n<path fill=\"none\" stroke=\"black\" d=\"M785.67,-109.64C773.41,-100.26 760.5,-90.39 748.31,-81.07\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"750.66,-77.69 740.59,-74.39 746.4,-83.25 750.66,-77.69\"/>\n</g>\n<!-- 16 -->\n<g id=\"node17\" class=\"node\">\n<title>16</title>\n<path fill=\"#ea975c\" stroke=\"black\" d=\"M902,-74C902,-74 790,-74 790,-74 784,-74 778,-68 778,-62 778,-62 778,-12 778,-12 778,-6 784,0 790,0 790,0 902,0 902,0 908,0 914,-6 914,-12 914,-12 914,-62 914,-62 914,-68 908,-74 902,-74\"/>\n<text text-anchor=\"start\" x=\"800.25\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.61</text>\n<text text-anchor=\"start\" x=\"802.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 40</text>\n<text text-anchor=\"start\" x=\"786\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [34, 0, 6, 0]</text>\n<text text-anchor=\"start\" x=\"802.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 14&#45;&gt;16 -->\n<g id=\"edge16\" class=\"edge\">\n<title>14&#45;&gt;16</title>\n<path fill=\"none\" stroke=\"black\" d=\"M844.77,-109.64C844.91,-101.63 845.05,-93.25 845.19,-85.17\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"848.7,-85.45 845.37,-75.39 841.7,-85.33 848.7,-85.45\"/>\n</g>\n<!-- 18 -->\n<g id=\"node19\" class=\"node\">\n<title>18</title>\n<path fill=\"#f1bb94\" stroke=\"black\" d=\"M1064.12,-74C1064.12,-74 943.88,-74 943.88,-74 937.88,-74 931.88,-68 931.88,-62 931.88,-62 931.88,-12 931.88,-12 931.88,-6 937.88,0 943.88,0 943.88,0 1064.12,0 1064.12,0 1070.12,0 1076.12,-6 1076.12,-12 1076.12,-12 1076.12,-62 1076.12,-62 1076.12,-68 1070.12,-74 1064.12,-74\"/>\n<text text-anchor=\"start\" x=\"958.25\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 1.05</text>\n<text text-anchor=\"start\" x=\"960.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 34</text>\n<text text-anchor=\"start\" x=\"939.88\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [23, 0, 1, 10]</text>\n<text text-anchor=\"start\" x=\"960.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 17&#45;&gt;18 -->\n<g id=\"edge18\" class=\"edge\">\n<title>17&#45;&gt;18</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1005.23,-109.64C1005.09,-101.63 1004.95,-93.25 1004.81,-85.17\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1008.3,-85.33 1004.63,-75.39 1001.3,-85.45 1008.3,-85.33\"/>\n</g>\n<!-- 19 -->\n<g id=\"node20\" class=\"node\">\n<title>19</title>\n<path fill=\"#e78946\" stroke=\"black\" d=\"M1218,-74C1218,-74 1106,-74 1106,-74 1100,-74 1094,-68 1094,-62 1094,-62 1094,-12 1094,-12 1094,-6 1100,0 1106,0 1106,0 1218,0 1218,0 1224,0 1230,-6 1230,-12 1230,-12 1230,-62 1230,-62 1230,-68 1224,-74 1218,-74\"/>\n<text text-anchor=\"start\" x=\"1116.25\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.33</text>\n<text text-anchor=\"start\" x=\"1118.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 33</text>\n<text text-anchor=\"start\" x=\"1102\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [31, 0, 2, 0]</text>\n<text text-anchor=\"start\" x=\"1118.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 17&#45;&gt;19 -->\n<g id=\"edge19\" class=\"edge\">\n<title>17&#45;&gt;19</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1065.87,-109.64C1078.57,-100.17 1091.96,-90.19 1104.57,-80.8\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1106.24,-83.18 1112.16,-74.39 1102.05,-77.56 1106.24,-83.18\"/>\n</g>\n<!-- 21 -->\n<g id=\"node22\" class=\"node\">\n<title>21</title>\n<path fill=\"#f6d1b7\" stroke=\"black\" d=\"M1457.25,-327C1457.25,-327 1328.75,-327 1328.75,-327 1322.75,-327 1316.75,-321 1316.75,-315 1316.75,-315 1316.75,-248.5 1316.75,-248.5 1316.75,-242.5 1322.75,-236.5 1328.75,-236.5 1328.75,-236.5 1457.25,-236.5 1457.25,-236.5 1463.25,-236.5 1469.25,-242.5 1469.25,-248.5 1469.25,-248.5 1469.25,-315 1469.25,-315 1469.25,-321 1463.25,-327 1457.25,-327\"/>\n<text text-anchor=\"start\" x=\"1356.25\" y=\"-309.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">safety ≤ 1.5</text>\n<text text-anchor=\"start\" x=\"1343.12\" y=\"-293.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.964</text>\n<text text-anchor=\"start\" x=\"1345.75\" y=\"-276.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 203</text>\n<text text-anchor=\"start\" x=\"1324.75\" y=\"-260.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [124, 0, 79, 0]</text>\n<text text-anchor=\"start\" x=\"1349.88\" y=\"-243.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 20&#45;&gt;21 -->\n<g id=\"edge21\" class=\"edge\">\n<title>20&#45;&gt;21</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1393,-362.65C1393,-354.79 1393,-346.51 1393,-338.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1396.5,-338.45 1393,-328.45 1389.5,-338.45 1396.5,-338.45\"/>\n</g>\n<!-- 28 -->\n<g id=\"node29\" class=\"node\">\n<title>28</title>\n<path fill=\"#399de5\" stroke=\"black\" d=\"M1611,-318.75C1611,-318.75 1499,-318.75 1499,-318.75 1493,-318.75 1487,-312.75 1487,-306.75 1487,-306.75 1487,-256.75 1487,-256.75 1487,-250.75 1493,-244.75 1499,-244.75 1499,-244.75 1611,-244.75 1611,-244.75 1617,-244.75 1623,-250.75 1623,-256.75 1623,-256.75 1623,-306.75 1623,-306.75 1623,-312.75 1617,-318.75 1611,-318.75\"/>\n<text text-anchor=\"start\" x=\"1513.38\" y=\"-301.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n<text text-anchor=\"start\" x=\"1511.88\" y=\"-284.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 68</text>\n<text text-anchor=\"start\" x=\"1495\" y=\"-268.45\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 68, 0]</text>\n<text text-anchor=\"start\" x=\"1511.88\" y=\"-251.95\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 20&#45;&gt;28 -->\n<g id=\"edge28\" class=\"edge\">\n<title>20&#45;&gt;28</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1451.03,-362.65C1466.73,-350.59 1483.69,-337.55 1499.27,-325.58\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1500.96,-327.92 1506.76,-319.06 1496.7,-322.37 1500.96,-327.92\"/>\n</g>\n<!-- 22 -->\n<g id=\"node23\" class=\"node\">\n<title>22</title>\n<path fill=\"#c6e3f8\" stroke=\"black\" d=\"M1453.12,-200.5C1453.12,-200.5 1332.88,-200.5 1332.88,-200.5 1326.88,-200.5 1320.88,-194.5 1320.88,-188.5 1320.88,-188.5 1320.88,-122 1320.88,-122 1320.88,-116 1326.88,-110 1332.88,-110 1332.88,-110 1453.12,-110 1453.12,-110 1459.12,-110 1465.12,-116 1465.12,-122 1465.12,-122 1465.12,-188.5 1465.12,-188.5 1465.12,-194.5 1459.12,-200.5 1453.12,-200.5\"/>\n<text text-anchor=\"start\" x=\"1347.62\" y=\"-183.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">lug_boot ≤ 0.5</text>\n<text text-anchor=\"start\" x=\"1343.12\" y=\"-166.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.979</text>\n<text text-anchor=\"start\" x=\"1345.75\" y=\"-150.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 101</text>\n<text text-anchor=\"start\" x=\"1328.88\" y=\"-133.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [42, 0, 59, 0]</text>\n<text text-anchor=\"start\" x=\"1349.88\" y=\"-117.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 21&#45;&gt;22 -->\n<g id=\"edge22\" class=\"edge\">\n<title>21&#45;&gt;22</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1393,-236.15C1393,-228.29 1393,-220.01 1393,-211.89\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1396.5,-211.95 1393,-201.95 1389.5,-211.95 1396.5,-211.95\"/>\n</g>\n<!-- 25 -->\n<g id=\"node26\" class=\"node\">\n<title>25</title>\n<path fill=\"#eba069\" stroke=\"black\" d=\"M1692.12,-200.5C1692.12,-200.5 1571.88,-200.5 1571.88,-200.5 1565.88,-200.5 1559.88,-194.5 1559.88,-188.5 1559.88,-188.5 1559.88,-122 1559.88,-122 1559.88,-116 1565.88,-110 1571.88,-110 1571.88,-110 1692.12,-110 1692.12,-110 1698.12,-110 1704.12,-116 1704.12,-122 1704.12,-122 1704.12,-188.5 1704.12,-188.5 1704.12,-194.5 1698.12,-200.5 1692.12,-200.5\"/>\n<text text-anchor=\"start\" x=\"1597.5\" y=\"-183.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">maint ≤ 1.5</text>\n<text text-anchor=\"start\" x=\"1582.12\" y=\"-166.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.714</text>\n<text text-anchor=\"start\" x=\"1584.75\" y=\"-150.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 102</text>\n<text text-anchor=\"start\" x=\"1567.88\" y=\"-133.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [82, 0, 20, 0]</text>\n<text text-anchor=\"start\" x=\"1588.88\" y=\"-117.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 21&#45;&gt;25 -->\n<g id=\"edge25\" class=\"edge\">\n<title>21&#45;&gt;25</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1469.61,-240.84C1495.27,-227.48 1523.97,-212.53 1550.02,-198.96\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1551.23,-201.75 1558.49,-194.02 1548,-195.54 1551.23,-201.75\"/>\n</g>\n<!-- 23 -->\n<g id=\"node24\" class=\"node\">\n<title>23</title>\n<path fill=\"#399de5\" stroke=\"black\" d=\"M1372,-74C1372,-74 1260,-74 1260,-74 1254,-74 1248,-68 1248,-62 1248,-62 1248,-12 1248,-12 1248,-6 1254,0 1260,0 1260,0 1372,0 1372,0 1378,0 1384,-6 1384,-12 1384,-12 1384,-62 1384,-62 1384,-68 1378,-74 1372,-74\"/>\n<text text-anchor=\"start\" x=\"1274.38\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.0</text>\n<text text-anchor=\"start\" x=\"1272.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 35</text>\n<text text-anchor=\"start\" x=\"1256\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [0, 0, 35, 0]</text>\n<text text-anchor=\"start\" x=\"1272.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 22&#45;&gt;23 -->\n<g id=\"edge23\" class=\"edge\">\n<title>22&#45;&gt;23</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1363.45,-109.64C1357.78,-101.08 1351.84,-92.11 1346.15,-83.52\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1348.55,-81.8 1340.11,-75.39 1342.71,-85.66 1348.55,-81.8\"/>\n</g>\n<!-- 24 -->\n<g id=\"node25\" class=\"node\">\n<title>24</title>\n<path fill=\"#f4c9aa\" stroke=\"black\" d=\"M1534.12,-74C1534.12,-74 1413.88,-74 1413.88,-74 1407.88,-74 1401.88,-68 1401.88,-62 1401.88,-62 1401.88,-12 1401.88,-12 1401.88,-6 1407.88,0 1413.88,0 1413.88,0 1534.12,0 1534.12,0 1540.12,0 1546.12,-6 1546.12,-12 1546.12,-12 1546.12,-62 1546.12,-62 1546.12,-68 1540.12,-74 1534.12,-74\"/>\n<text text-anchor=\"start\" x=\"1424.12\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.946</text>\n<text text-anchor=\"start\" x=\"1430.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 66</text>\n<text text-anchor=\"start\" x=\"1409.88\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [42, 0, 24, 0]</text>\n<text text-anchor=\"start\" x=\"1430.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 22&#45;&gt;24 -->\n<g id=\"edge24\" class=\"edge\">\n<title>22&#45;&gt;24</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1424.09,-109.64C1430.11,-100.99 1436.43,-91.92 1442.47,-83.25\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1445.8,-85.6 1448.64,-75.39 1440.05,-81.6 1445.8,-85.6\"/>\n</g>\n<!-- 26 -->\n<g id=\"node27\" class=\"node\">\n<title>26</title>\n<path fill=\"#e6853f\" stroke=\"black\" d=\"M1688,-74C1688,-74 1576,-74 1576,-74 1570,-74 1564,-68 1564,-62 1564,-62 1564,-12 1564,-12 1564,-6 1570,0 1576,0 1576,0 1688,0 1688,0 1694,0 1700,-6 1700,-12 1700,-12 1700,-62 1700,-62 1700,-68 1694,-74 1688,-74\"/>\n<text text-anchor=\"start\" x=\"1582.12\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.187</text>\n<text text-anchor=\"start\" x=\"1588.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 70</text>\n<text text-anchor=\"start\" x=\"1572\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [68, 0, 2, 0]</text>\n<text text-anchor=\"start\" x=\"1588.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 25&#45;&gt;26 -->\n<g id=\"edge26\" class=\"edge\">\n<title>25&#45;&gt;26</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1632,-109.64C1632,-101.63 1632,-93.25 1632,-85.17\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1635.5,-85.39 1632,-75.39 1628.5,-85.39 1635.5,-85.39\"/>\n</g>\n<!-- 27 -->\n<g id=\"node28\" class=\"node\">\n<title>27</title>\n<path fill=\"#d3e9f9\" stroke=\"black\" d=\"M1850.12,-74C1850.12,-74 1729.88,-74 1729.88,-74 1723.88,-74 1717.88,-68 1717.88,-62 1717.88,-62 1717.88,-12 1717.88,-12 1717.88,-6 1723.88,0 1729.88,0 1729.88,0 1850.12,0 1850.12,0 1856.12,0 1862.12,-6 1862.12,-12 1862.12,-12 1862.12,-62 1862.12,-62 1862.12,-68 1856.12,-74 1850.12,-74\"/>\n<text text-anchor=\"start\" x=\"1740.12\" y=\"-56.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">entropy = 0.989</text>\n<text text-anchor=\"start\" x=\"1746.88\" y=\"-40.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">samples = 32</text>\n<text text-anchor=\"start\" x=\"1725.88\" y=\"-23.7\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">value = [14, 0, 18, 0]</text>\n<text text-anchor=\"start\" x=\"1746.88\" y=\"-7.2\" font-family=\"Helvetica,sans-Serif\" font-size=\"14.00\">class = unacc</text>\n</g>\n<!-- 25&#45;&gt;27 -->\n<g id=\"edge27\" class=\"edge\">\n<title>25&#45;&gt;27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1692.64,-109.64C1705.5,-100.17 1719.06,-90.19 1731.84,-80.8\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1733.56,-83.14 1739.54,-74.39 1729.41,-77.5 1733.56,-83.14\"/>\n</g>\n</g>\n</svg>\n",
      "text/plain": [
       "<graphviz.sources.Source at 0x1386c218c40>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz \n",
    "dot_data = tree.export_graphviz(clf_en, out_file=None, \n",
    "                              feature_names=X_train.columns,  \n",
    "                              class_names=['unacc', 'acc', 'good', 'vgood'],\n",
    "                              filled=True, rounded=True,  \n",
    "                              special_characters=True)\n",
    "\n",
    "graph = graphviz.Source(dot_data) \n",
    "\n",
    "graph "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, based on the above analysis we can conclude that our classification model accuracy is very good. Our model is doing a very good job in terms of predicting the class labels.\n",
    "\n",
    "\n",
    "But, it does not give the underlying distribution of values. Also, it does not tell anything about the type of errors our classifer is making. \n",
    "\n",
    "\n",
    "We have another tool called `Confusion matrix` that comes to our rescue."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **15. Confusion matrix** <a class=\"anchor\" id=\"15\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "A confusion matrix is a tool for summarizing the performance of a classification algorithm. A confusion matrix will give us a clear picture of classification model performance and the types of errors produced by the model. It gives us a summary of correct and incorrect predictions broken down by each category. The summary is represented in a tabular form.\n",
    "\n",
    "\n",
    "Four types of outcomes are possible while evaluating a classification model performance. These four outcomes are described below:-\n",
    "\n",
    "\n",
    "**True Positives (TP)** – True Positives occur when we predict an observation belongs to a certain class and the observation actually belongs to that class.\n",
    "\n",
    "\n",
    "**True Negatives (TN)** – True Negatives occur when we predict an observation does not belong to a certain class and the observation actually does not belong to that class.\n",
    "\n",
    "\n",
    "**False Positives (FP)** – False Positives occur when we predict an observation belongs to a    certain class but the observation actually does not belong to that class. This type of error is called **Type I error.**\n",
    "\n",
    "\n",
    "\n",
    "**False Negatives (FN)** – False Negatives occur when we predict an observation does not belong to a certain class but the observation actually belongs to that class. This is a very serious error and it is called **Type II error.**\n",
    "\n",
    "\n",
    "\n",
    "These four outcomes are summarized in a confusion matrix given below.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion matrix\n",
      "\n",
      " [[ 73   0  56   0]\n",
      " [ 20   0   0   0]\n",
      " [ 12   0 385   0]\n",
      " [ 25   0   0   0]]\n"
     ]
    }
   ],
   "source": [
    "# Print the Confusion Matrix and slice it into four pieces\n",
    "\n",
    "from sklearn.metrics import confusion_matrix\n",
    "\n",
    "cm = confusion_matrix(y_test, y_pred_en)\n",
    "\n",
    "print('Confusion matrix\\n\\n', cm)\n",
    "\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **16. Classification Report** <a class=\"anchor\" id=\"16\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "**Classification report** is another way to evaluate the classification model performance. It displays the  **precision**, **recall**, **f1** and **support** scores for the model. I have described these terms in later.\n",
    "\n",
    "We can print a classification report as follows:-"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "         acc       0.56      0.57      0.56       129\n",
      "        good       0.00      0.00      0.00        20\n",
      "       unacc       0.87      0.97      0.92       397\n",
      "       vgood       0.00      0.00      0.00        25\n",
      "\n",
      "    accuracy                           0.80       571\n",
      "   macro avg       0.36      0.38      0.37       571\n",
      "weighted avg       0.73      0.80      0.77       571\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "\n",
    "print(classification_report(y_test, y_pred_en))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **17. Results and conclusion** <a class=\"anchor\" id=\"17\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "1.\tIn this project, I build a Decision-Tree Classifier model to predict the safety of the car. I build two models, one with criterion `gini index` and another one with criterion `entropy`. The model yields a very good performance as indicated by the model accuracy in both the cases which was found to be 0.8021.\n",
    "2.\tIn the model with criterion `gini index`, the training-set accuracy score is 0.7865 while the test-set accuracy to be 0.8021. These two values are quite comparable. So, there is no sign of overfitting.\n",
    "3.\tSimilarly, in the model with criterion `entropy`, the training-set accuracy score is 0.7865 while the test-set accuracy to be 0.8021.We get the same values as in the case with criterion `gini`. So, there is no sign of overfitting.\n",
    "4.\tIn both the cases, the training-set and test-set accuracy score is the same. It may happen because of small dataset.\n",
    "5.\tThe confusion matrix and classification report yields very good model performance."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# **18. References** <a class=\"anchor\" id=\"18\"></a>\n",
    "\n",
    "[Table of Contents](#0.1)\n",
    "\n",
    "\n",
    "The work done in this project is inspired from following books and websites:-\n",
    "\n",
    "1. Hands on Machine Learning with Scikit-Learn and Tensorflow by Aurélién Géron\n",
    "\n",
    "2. Introduction to Machine Learning with Python by Andreas C. Müller and Sarah Guido\n",
    "\n",
    "3. https://en.wikipedia.org/wiki/Decision_tree\n",
    "\n",
    "4. https://en.wikipedia.org/wiki/Information_gain_in_decision_trees\n",
    "\n",
    "5. https://en.wikipedia.org/wiki/Entropy_(information_theory)\n",
    "\n",
    "6. https://www.datacamp.com/community/tutorials/decision-tree-classification-python\n",
    "\n",
    "7. https://stackabuse.com/decision-trees-in-python-with-scikit-learn/\n",
    "\n",
    "8. https://acadgild.com/blog/decision-tree-python-code\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So, now we will come to the end of this kernel.\n",
    "\n",
    "I hope you find this kernel useful and enjoyable.\n",
    "\t\n",
    "Your comments and feedback are most welcome.\n",
    "\n",
    "Thank you\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[Go to Top](#0)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.9.12 ('base')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  },
  "vscode": {
   "interpreter": {
    "hash": "ad2bdc8ecc057115af97d19610ffacc2b4e99fae6737bb82f5d7fb13d2f2c186"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
